導航:首頁 > 編程知識 > 非遞歸怎麼編程

非遞歸怎麼編程

發布時間:2022-09-18 19:11:30

『壹』 C++ 使用遞歸及非遞歸兩種方法,編程實現單向鏈表的反轉。

不知道你是需要用STL來寫還是類似C的寫法,給個簡單的例子吧#include "stdafx.h"
#include "malloc.h"
#include "ostream.h"typedef struct _Node
{
int value;
_Node * pNext;
}Node;Node * InitList()
{
Node * pHead = (Node*)malloc(sizeof(Node));
Node * pNode = pHead;
pHead->value = 0;
for(int i = 1; i < 50; i ++)
{
pNode->pNext = (Node *)malloc(sizeof(Node));
pNode = pNode->pNext;
pNode->value = i;
pNode->pNext = NULL;
}
return pHead;
}
//返回尾節點
Node * Revert1(Node * pHead)
{
Node * pfather = pHead;
Node * pNode;
if(!pfather) return NULL;
pHead = pHead->pNext;
pfather->pNext = NULL;
while(pHead != NULL)
{
pNode = pHead->pNext;
pHead->pNext = pfather;
pfather = pHead;
pHead = pNode;
}
return pfather;
}
//返回尾節點
Node * Revert2(Node * pHead, Node * pfather = NULL)
{
Node * ret = NULL;
if(!pHead) return NULL;
if(pHead->pNext)
ret = Revert2(pHead->pNext, pHead);
pHead->pNext = pfather;
if(!ret)
return pHead;
else
return ret;
}void PrintNode(Node * pNode)
{
while(pNode)
{
cout<<pNode->value<<" ";
pNode = pNode->pNext;
}
}
int main(int argc, char* argv[])
{
Node * pNode = Revert2(InitList());
PrintNode(pNode);
return 0;
}

『貳』 F(N)=2*F(N-1)+3*F(N-2)的非遞歸演算法是怎麼寫的用C++1

用循環去做
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int n;

double f0, f1;
cin >> n; //計算到f(n)

cin >> f0 >> f1; //初始值
if(n < 2)

return -1;
int t = 2;
double f = 0.;
while(t <= n)
{
f = 2*f1+3*f0;
f0 = f1;
f1 = f;
++t;

}
cout << "fn is " << f << endl;
return 0;

}

希望我的回答能得到採納

『叄』 如何編程實現二叉樹的非遞歸遍歷

前序遍歷按照「根結點-左孩子-右孩子」的順序進行訪問。
1.遞歸實現

void preOrder1(BinTree *root) //遞歸前序遍歷
{
if(root!=NULL)
{
cout<<root->data<<" ";
preOrder1(root->lchild);
preOrder1(root->rchild);
}
}

2.非遞歸實現
根據前序遍歷訪問的順序,優先訪問根結點,然後再分別訪問左孩子和右孩子。即對於任一結點,其可看做是根結點,因此可以直接訪問,訪問完之後,若其左孩子不為空,按相同規則訪問它的左子樹;當訪問其左子樹時,再訪問它的右子樹。因此其處理過程如下:
對於任一結點P:
1)訪問結點P,並將結點P入棧;
2)判斷結點P的左孩子是否為空,若為空,則取棧頂結點並進行出棧操作,並將棧頂結點的右孩子置為當前的結點P,循環至1);若不為空,則將P的左孩子置為當前的結點P;
3)直到P為NULL並且棧為空,則遍歷結束。

void preOrder2(BinTree *root) //非遞歸前序遍歷
{
stack<BinTree*> s;
BinTree *p=root;
while(p!=NULL||!s.empty())
{
while(p!=NULL)
{
cout<<p->data<<" ";
s.push(p);
p=p->lchild;
}
if(!s.empty())
{
p=s.top();
s.pop();
p=p->rchild;
}
}
}

二.中序遍歷
中序遍歷按照「左孩子-根結點-右孩子」的順序進行訪問。
1.遞歸實現

void inOrder1(BinTree *root) //遞歸中序遍歷
{
if(root!=NULL)
{
inOrder1(root->lchild);
cout<<root->data<<" ";
inOrder1(root->rchild);
}
}

2.非遞歸實現
根據中序遍歷的順序,對於任一結點,優先訪問其左孩子,而左孩子結點又可以看做一根結點,然後繼續訪問其左孩子結點,直到遇到左孩子結點為空的結點才進行訪問,然後按相同的規則訪問其右子樹。因此其處理過程如下:
對於任一結點P,
1)若其左孩子不為空,則將P入棧並將P的左孩子置為當前的P,然後對當前結點P再進行相同的處理;
2)若其左孩子為空,則取棧頂元素並進行出棧操作,訪問該棧頂結點,然後將當前的P置為棧頂結點的右孩子;
3)直到P為NULL並且棧為空則遍歷結束

void inOrder2(BinTree *root) //非遞歸中序遍歷
{
stack<BinTree*> s;
BinTree *p=root;
while(p!=NULL||!s.empty())
{
while(p!=NULL)
{
s.push(p);
p=p->lchild;
}
if(!s.empty())
{
p=s.top();
cout<<p->data<<" ";
s.pop();
p=p->rchild;
}
}
}

『肆』 C語言編程:用遞歸和非遞歸法輸出斐波那契數列

你用的什麼編譯器我用VC++6.0完全正常我給你貼圖

循環版&nbsp&nbsp;

=========================================&nbsp&nbsp;

#include&nbsp&nbsp;&nbsp&nbsp;<stdio.h>&nbsp&nbsp;

int&nbsp&nbsp;&nbsp&nbsp;main()&nbsp&nbsp;

{&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;unsigned&nbsp&nbsp;&nbsp&nbsp;int&nbsp&nbsp;&nbsp&nbsp;a[40]&nbsp&nbsp;&nbsp&nbsp;=&nbsp&nbsp;&nbsp&nbsp;{0,&nbsp&nbsp;&nbsp&nbsp;1};&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;printf&nbsp&nbsp;&nbsp&nbsp;("%d %d ",&nbsp&nbsp;&nbsp&nbsp;a[0],&nbsp&nbsp;&nbsp&nbsp;a[1]);&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;for&nbsp&nbsp;&nbsp&nbsp;(&nbsp&nbsp;&nbsp&nbsp;int&nbsp&nbsp;&nbsp&nbsp;i&nbsp&nbsp;&nbsp&nbsp;=&nbsp&nbsp;&nbsp&nbsp;2;&nbsp&nbsp;&nbsp&nbsp;i&nbsp&nbsp;&nbsp&nbsp;<&nbsp&nbsp;&nbsp&nbsp;40;&nbsp&nbsp;&nbsp&nbsp;++i)&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;{&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;a[i]&nbsp&nbsp;&nbsp&nbsp;=&nbsp&nbsp;&nbsp&nbsp;a[i-1]&nbsp&nbsp;&nbsp&nbsp;+&nbsp&nbsp;&nbsp&nbsp;a[i-2];&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;printf&nbsp&nbsp;&nbsp&nbsp;("%d ",&nbsp&nbsp;&nbsp&nbsp;a[i]);&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;}&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;return&nbsp&nbsp;&nbsp&nbsp;0;&nbsp&nbsp;

}&nbsp&nbsp;

===========================================&nbsp&nbsp;

遞歸版&nbsp&nbsp;

===========================================&nbsp&nbsp;

#include&nbsp&nbsp;&nbsp&nbsp;<stdio.h>&nbsp&nbsp;

int&nbsp&nbsp;&nbsp&nbsp;fb&nbsp&nbsp;&nbsp&nbsp;(int&nbsp&nbsp;&nbsp&nbsp;i)&nbsp&nbsp;

{&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;if&nbsp&nbsp;&nbsp&nbsp;(&nbsp&nbsp;&nbsp&nbsp;i&nbsp&nbsp;&nbsp&nbsp;<&nbsp&nbsp;&nbsp&nbsp;2&nbsp&nbsp;&nbsp&nbsp;)&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;return&nbsp&nbsp;&nbsp&nbsp;i&nbsp&nbsp;&nbsp&nbsp;==&nbsp&nbsp;&nbsp&nbsp;0&nbsp&nbsp;&nbsp&nbsp;?&nbsp&nbsp;&nbsp&nbsp;0&nbsp&nbsp;&nbsp&nbsp;:&nbsp&nbsp;&nbsp&nbsp;1;&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;return&nbsp&nbsp;&nbsp&nbsp;fb&nbsp&nbsp;&nbsp&nbsp;(i&nbsp&nbsp;&nbsp&nbsp;-&nbsp&nbsp;&nbsp&nbsp;1)&nbsp&nbsp;&nbsp&nbsp;+&nbsp&nbsp;&nbsp&nbsp;fb&nbsp&nbsp;&nbsp&nbsp;(i&nbsp&nbsp;&nbsp&nbsp;-&nbsp&nbsp;&nbsp&nbsp;2);&nbsp&nbsp;

}&nbsp&nbsp;

int&nbsp&nbsp;&nbsp&nbsp;main()&nbsp&nbsp;

{&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;for&nbsp&nbsp;&nbsp&nbsp;(&nbsp&nbsp;&nbsp&nbsp;int&nbsp&nbsp;&nbsp&nbsp;i&nbsp&nbsp;&nbsp&nbsp;=&nbsp&nbsp;&nbsp&nbsp;0;&nbsp&nbsp;&nbsp&nbsp;i&nbsp&nbsp;&nbsp&nbsp;<&nbsp&nbsp;&nbsp&nbsp;40;&nbsp&nbsp;&nbsp&nbsp;++i)&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;printf&nbsp&nbsp;&nbsp&nbsp;("%d ",&nbsp&nbsp;&nbsp&nbsp;fb&nbsp&nbsp;&nbsp&nbsp;(i));&nbsp&nbsp;

&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;&nbsp&nbsp;return&nbsp&nbsp;&nbsp&nbsp;0;&nbsp&nbsp;

}&nbsp&nbsp;

『伍』 C語言,用非遞歸的演算法(鏈棧)計算二叉樹的結點數。

#包括
使用命名空間std;
定義MAX 100

類二叉樹
{

char數據;
二叉樹* lchild;
二叉樹* rchild;
};的
二叉樹* creatree()/ /非遞歸創建一棵二叉樹
{ />字元CH;
詮釋前面= 1,後= 0; / /初始化隊列
B樹*根*,S * Q [MAX];
根= NULL;
cout <<「請'@'表示'空','#',」結束「,他的貢獻層:」<< endl;
CH = getchar函數();
而因素(ch! = '#')
{
= NULL,/ /讀取的第一個假設是空的節點_at_
(ch! =「_at_')
{
新的二叉樹;
- >數據= CH;
- > lchild = NULL;
- > rchild = NULL;
}
後端的團隊+ +; / /指針遞增
Q [後] =;
如果(後部== 1)
根= / /根
其他
{
(S && Q [前方])/ /當前節點的父節點是不是空的節點
(後部%2 == 0)
Q [前] - > lchild;
其他
Q [前] - > rchild =;
(背面%2 == 1)
前+ +;
} BR /> CH = getchar函數()/ /讀出下一個節點的值
}
返回根;
}
無效後序(B樹* BT)
二叉樹* p = BT,*棧[MAX] ;/ / p表示當前節點協議棧棧[]
INT標記用於存儲節點[MAX];
頂部= -1 ;

{
在while(p! = NULL)/ /第一個處理器節點的左子節點都留給孩子,反過來堆棧
{
>棧[+ +頂部] = P;
[頂] = 0;
P = P-> lchild;
}
(TOP> = 0)/ /所有留守兒童處理
{
(標記[頂])/ /如果當前節點的右子尚未被訪問
{
P =堆棧[頂]; /輸出的協議棧節點的頂部,但消失在堆棧中,因為要輸出他們的孩子的第一個節點
p = P-> rchild; / /右子節點的處理
標簽[頂] = 1; / /在被訪問的的堆棧存儲節點的右子榜首的位置,下一次你把它退棧直接輸出
}
其他
{
法院<數據/ /在棧的棧頂元素,輸出的節點,節點p指向NULL
}

}}而(( P = NULL)| |(> = 0));
}

廉政的main()
{
二叉樹BT;
BT = creatree();
法院<<'\ n'<<「後序」;
後序(BT);
法院<< endl;
系統(「暫停「);
返回0;
}

『陸』 如何在linux系統中用C語言編程實現以非遞歸的方式查詢指定目錄下所有子目錄的全部文件並保存文件名

把迭代得到的非文件文件夾項,即子目錄保存到一個stack中。
隨後逐個彈出棧頂元素並迭代之,就實現了以非遞歸方式遍歷文件夾。

『柒』 這道數據結構編程題怎麼做將非遞歸的折半查找改寫為遞歸演算法,用C++編程,求大神解答~~~

沒看到你的具體題目,折半演算法對被查找的數組是有要求的,必須是順序排列,而且遞增和遞減是不一樣的。因為沒看到具體要求,我只能按我的想法給你講講折半演算法。
【解題思路】
折半查找法,是指在一組按順序排列的數中,每次都從中間位置開始比較,如果等於被查找數就是找到了,如果不等於被查找數,則在另外一半的元素中找,循環往復,一直到找到或找遍為止。折半查找法最好的就是用函數的遞歸調用。
比如,要在一個15個元素的遞增數組S中查找數值A,查找范圍是S[0]-S[14],那麼首先是找出中間點S[7]作比較,如果S[7]等於A就是找到了,如果S[7]大於A,則說明A在S[0]-S[6]之間;反之,則說明A在S[8]-S[14]之間,然後再重復上述步驟,找出范圍內的中間點進行比較,一直到找到或者不能再折半為止。

程序代碼
#include<iostream>//控制台操作頭文件
/*下面的Find()函數是在遞增數組中用折半查找法的遞歸函數,其中S是要查找的數組,B是查找范圍的起始下標,E是查找范圍的終止下標,A是要查找的數值,如果找到了就返回該數值在數組中是第幾個(從第0個開始算),如果找不到就返回-1*/
intFind(int*S,intB,intE,intA)//查找函數
{if(B>=E)//不能折半則無需繼續遞歸
{if(S[B]==A)returnB;//找到則返回數組下標
elsereturn-1;}//找不到則返回-1
intI=B+(E-B+1)/2;//折半查找的中間點位置
if(S[I]==A)returnI;//和中間點比較,找到則返回I
if(S[I]>A)E=I-1;//大於A則在數組的前半段查找
elseB=I+1;//否則在數組的後半段查找
returnFind(S,B,E,A);}//遞歸調用查找函數

intmain()//主函數
{intS[]={1,3,5,7,9,11,13,15,17,//定義一個16個元素的遞增數組
19,21,23,25,27,29,31,};
intA=0,O=0;//定義兩個整型變數
while(A>=0)//當A為非負數的時候循環
{printf("請輸入要找的數值:");//顯示提示輸入的信息
scanf("%d",&A);//從鍵盤輸出要查找的數
O=Find(S,0,15,A);//調用函數在S數組中查找
if(O==-1)printf("沒有找到 ");//如果找不到顯示提示信息
elseprintf("%d在第%d個 ",A,O);//否則顯示出找到的對應下標
printf(" ");}//換行開始查找下一個
system("PAUSE");//屏幕暫停,以便看到運行結果
return0;//結束程序
}

【運行結果】
以上程序在DEVC++中運行通過

『捌』 誰會漢諾塔非遞歸的編程(java),並真正了解含義

public class Hannuota {
private int n;//儲存檔子個數
public Hannuota(int n){
this.n = n;
}
public void function(){
//初始化三個柱子,A是開始堆滿盤子的柱子,C是目標柱子
Pillar a = new Pillar(n,n,"A");
Pillar b = new Pillar(n,"B");
Pillar c = new Pillar(n,"C");
//把三個柱子按順序排好,詳見後面的演算法那裡的解釋
Pillar[] pillars = new Pillar[3];
pillars[0] = a;
if(n%2==0){
pillars[1] = b;
pillars[2] = c;
}else{
pillars[1] = c;
pillars[2] = b;
}
//開始移動,k用來計數,移動次數為2^n-1,至於為什麼,我不太清楚,
//反正有人證明過。i是用來保存最小那個盤子正在哪跟柱子上的。
int i=0;
for(int k=0;k<(int)Math.pow(2, n)-1;){
int min;
//將最小的盤子順時針移動一個柱子
min = pillars[i%3].Pop();
pillars[(i+1)%3].Push(min);
System.out.println(pillars[i%3]+"->"+pillars[(i+1)%3]);
k++;
i++;
//這個IF好像可以不要,當時寫的,後面忘了刪除。
if(k<(int)Math.pow(2, n)-1){
//如果,剩下兩根柱子中,某一根為空,則一定是非空那根中最上面個盤子
//移動到空的那個柱子上。若兩根都不為空,則把編號小的一個盤子
//移動到另外跟柱子上
if(!pillars[(i-1)%3].isEmpty()&&(pillars[(i+1)%3].isEmpty()||pillars[(i+1)%3].Top()>pillars[(i-1)%3].Top())){
min=pillars[(i-1)%3].Pop();
pillars[(i+1)%3].Push(min);
System.out.println(pillars[(i-1)%3]+"->"+pillars[(i+1)%3]);
}else{
min=pillars[(i+1)%3].Pop();
pillars[(i-1)%3].Push(min);
System.out.println(pillars[(i+1)%3]+"->"+pillars[(i-1)%3]);
}
k++;
}
}
}
//主函數,用來測試的。3表示3個盤子。
public static void main(String args[]){
new Hannuota(3).function();
}
}

class Pillar{//構造一個新類,表示柱子,實際是當一個棧在用
private int[] s;
private int top;
private String name;
public String toString(){
return name;
}
//這個構造函數用來構造BC兩個柱子,下面那個用來構造柱子A。其實也可以寫成一個構造函數。
public Pillar(int max,String name){
s = new int[max];
top = -1;
this.name = name;
for(int i=0;i s[i] = max+1;
}
}
public Pillar(int n,int max,String name){
s = new int[max];
top = n-1;
this.name = name;
for(int i=0;i s[i] = max - i;
}
}
//這後面這些就是棧的基本方法了,不用介紹了吧
public boolean isEmpty(){
return top==-1?true:false;
}
public int Top (){
return s[top];
}
public int Pop(){
return s[top--];
}
public void Push(int x){
s[++top] = x;
}
}
演算法是這個
首先容易證明,當盤子的個數為n時,移動的次數應等於2^n - 1。
首先把三根柱子按順序排成品字型,把所有的圓盤按從大到小的順序放在柱子A上。
根據圓盤的數量確定柱子的排放順序:若n為偶數,按順時針方向依次擺放 A B C;
若n為奇數,按順時針方向依次擺放 A C B。
(1)按順時針方向把圓盤1從現在的柱子移動到下一根柱子,即當n為偶數時,若圓盤1在柱子A,則把它移動到B;
若圓盤1在柱子B,則把它移動到C;若圓盤1在柱子C,則把它移動到A。
(2)接著,把另外兩根柱子上可以移動的圓盤移動到新的柱子上。
即把非空柱子上的圓盤移動到空柱子上,當兩根柱子都非空時,移動較小的圓盤
這一步沒有明確規定移動哪個圓盤,你可能以為會有多種可能性,其實不然,可實施的行動是唯一的。
(3)反復進行(1)(2)操作,最後就能按規定完成漢諾塔的移動。

這玩意要非遞歸真麻煩。需不需要加點注釋?

『玖』 C#編程,利用遞歸、非遞歸編程實現輸出如下字母金字塔

非遞歸:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("輸出a......k的字母金字塔為:");
string str="`abcdefghijklmnop";
for (int i = 1; i < 12; i++)
{
for (int j = 1; j < 50 - 2 * i; j++)
{
Console.Write(" ");
}
for (int j = -i+1; j < i; j++)
{
if (j < 0)
{
Console.Write(str[i+j] + " ");
}
else
{
Console.Write(str[i-j] + " ");
}

}
Console.WriteLine();
}
Console.Read();
}
}
}

遞歸:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
public static string str="`abcdefghijklmnop";
private static void fun(int i)
{
if (i > 11) return;
for (int j = 1; j < 50 - 2 * i; j++)
{
Console.Write(" ");
}
for (int j = -i + 1; j < i; j++)
{
if (j < 0)
{
Console.Write(str[i + j] + " ");
}
else
{
Console.Write(str[i - j] + " ");
}

}
Console.WriteLine();
fun(i + 1);
}
static void Main(string[] args)
{
Console.WriteLine("輸出a......k的字母金字塔為:");
fun(1);
Console.Read();
}

}
}

『拾』 C語言編程:用遞歸和非遞歸法輸出斐波那契數列

遞歸法:
#include<stdio.h>
void main()
{
int Fibonacci(int n);
int n,i,c=0;
printf("請輸入n的值:");
scanf("%d",&n);
for(i=1; i<=n; i++)
{
c = Fibonacci(i);
printf("%12ld",c);
if(i%4==0) //用於換行 4個一行;
printf("\n");
}
}
int Fibonacci(int n)//函數部分;
{
long int f;
if(n==1 || n==2)
{
f=1;
}
else
if(n>=3)
f = Fibonacci(n-1) + Fibonacci(n-2);
return f;
}
非遞歸法:
#include<stdio.h>
void main()
{
int i,n;
int f[]= {1,1};
printf("請輸入n的值:");
scanf("%d",&n);
for(i=2; i<=n; i++)
f[i] = f[i-2] + f[i-1];
for(i=0; i<=n; i++)
{
if(i%5==0) printf("\n");
printf("%12d",f[i]);
}
printf("\n");
}
遞歸可以使程序看起來比較簡潔,但缺點是效率比較低,並且可能導致棧溢出,因此需要靈活使用遞歸。

閱讀全文

與非遞歸怎麼編程相關的資料

熱點內容
網路HRV是什麼意思 瀏覽:918
word框中打勾 瀏覽:577
tcl筆試題java 瀏覽:467
win10怎麼登錄安全模式 瀏覽:679
除了archdaily還有什麼網站 瀏覽:567
數控下料圓形怎麼編程 瀏覽:785
安裝游戲在文件管理找不到怎麼辦 瀏覽:216
想買奢侈包包下載什麼app 瀏覽:1000
閃送員是哪裡的app 瀏覽:530
火車站進站閘機的數據哪裡可以查 瀏覽:503
cad備份文件清理軟體 瀏覽:822
夾具裝配圖cad文件百度網盤 瀏覽:567
如何將excel表格轉成文件包 瀏覽:1
網路配置文件應該怎麼設置 瀏覽:886
蘋果全能文件王下載位置 瀏覽:700
中國知網是哪些資料庫 瀏覽:280
fastjson優點 瀏覽:302
mstcam數控銑床編程如何串連 瀏覽:502
d4252用什麼軟體編程 瀏覽:35
大學生如何參與大數據 瀏覽:779

友情鏈接