版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 《數(shù)據(jù)結(jié)構(gòu)》</b></p><p><b> ---課程設(shè)計報告</b></p><p><b> 設(shè)計題目</b></p><p><b> 迷宮問題</b></p><p><b> 需求分析</
2、b></p><p><b> 1.選題理由</b></p><p> 迷宮求解是數(shù)據(jù)結(jié)構(gòu)課程的一個經(jīng)典問題,迷宮問題要求尋找一條從入口到出口的路徑。通常用的是“窮舉求解”的方法。為了保證在任何位置上都能原路退回,顯然需要用一個后進先出的結(jié)構(gòu)來保存從入口到當(dāng)前位置的路徑。因此,在求解迷宮通路的算法中要應(yīng)用“?!钡乃枷搿τ跅5膬?nèi)容在整個學(xué)期的學(xué)習(xí)中我也有了一
3、定的了解,所以選擇了迷宮這一經(jīng)典問題作為本次課設(shè)的內(nèi)容。 </p><p><b> 2.基本原理分析 </b></p><p> 迷宮問題通常是用“窮舉求解”方法解決,即從入口出發(fā),順著某一個方向進行探索,若能走通,則繼續(xù)往前走;否則沿著原路退回,換一個方向繼續(xù)探索,直至出口位置,求得一條通路。假如所有可能的通路都探索到而未能到達出口,則所設(shè)定的迷宮沒有通路。棧
4、是一個后進先出的結(jié)構(gòu),可以用來保存從入口到當(dāng)前位置的路徑。</p><p> 以二維數(shù)組存儲迷宮數(shù)據(jù),通常設(shè)定入口點的下標(biāo)為(1,1),出口點的下標(biāo)為(n,n)。為處理方便起見,在迷宮的四周加一圈障礙。對于迷宮任何一個位置,均約定東、南、西、北四個方向可通。</p><p><b> 3.功能要求 </b></p><p> ?。?)以一個
5、二維數(shù)組Maze[m+2][n+2]表示迷宮,其中:Maze[0][j]和Maze[m+1][j](0<=j<=n+1)及Maze[i][0]和Maze[i][n+1] (0<=i<=m+1)為做外層的一圈障礙。數(shù)組中以0表示通路,1表示障礙,限定迷宮的大小為:m,n<=10。</p><p> (2)用戶需用文件的形式輸入迷宮的數(shù)據(jù):文件中第一行的數(shù)據(jù)為迷宮的行數(shù)m和列數(shù)n;從第
6、2行至第m+1行(每行n個數(shù))為迷宮值,用0,1輸入,同行中的兩個數(shù)字之間用空白字符相隔。</p><p> (3)迷宮的入口位置和出口位置可由用戶隨時設(shè)定。</p><p> (4)若設(shè)定的迷宮存在通路,則以長方陣形式將迷宮及其通路輸出到標(biāo)準輸出文件上,其中字符“#”表示障礙,“*”表示路徑,“@”表示曾途經(jīng)該位置但不能到達出口,其余位置用空格符表示。若設(shè)定迷宮不存在通路則報告相應(yīng)信
7、息</p><p> (5)本程序只求出一條成功的通路。</p><p> (6)程序執(zhí)行的命令為:1,創(chuàng)建迷宮;2,求解迷宮;3,輸出迷宮的解。</p><p><b> 三、概要設(shè)計</b></p><p><b> 本程序包含三個模塊</b></p><p>
8、?。?)棧模塊——實現(xiàn)棧抽象數(shù)據(jù)類型</p><p> (2)迷宮模塊——實現(xiàn)迷宮抽象數(shù)據(jù)類型</p><p><b> ?。?)主程序模塊:</b></p><p> void mian()</p><p><b> {</b></p><p><b>
9、初始化;</b></p><p><b> Do{</b></p><p><b> 接受命令;</b></p><p><b> 處理命令;</b></p><p> }while(命令!=“退出”);</p><p><b&
10、gt; }</b></p><p> 各模塊之間的調(diào)用關(guān)系如圖一:</p><p><b> 圖一:調(diào)用關(guān)系圖</b></p><p> 函數(shù)的調(diào)用關(guān)系圖反映了程序的層次結(jié)構(gòu)如圖二:</p><p> 圖二 :函數(shù)的調(diào)用關(guān)系圖</p><p><b> 四、詳細設(shè)
11、計</b></p><p> ?。?)棧的抽象數(shù)據(jù)類型</p><p> ADT Stack{</p><p> 數(shù)據(jù)對象:D={ai| ai∈CharSet,i=1,2…n,n>=0}</p><p> 數(shù)據(jù)關(guān)系:R1={<ai-1, ai >| ai-1, ai∈D,i=2,…n}</p>
12、<p><b> 基本操作:</b></p><p> InitStack(&S)</p><p> 操作結(jié)果:構(gòu)造一個空棧S。</p><p> DestroyStack(&S)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:銷毀棧
13、S。</p><p> ClearStack(&S)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:將S清為空棧。</p><p> StackLength(S)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:返回棧S的長度。&
14、lt;/p><p> StackEmpty(S)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:若S為空棧,則返回TRUE,否則返回FALSE。</p><p> GetTop(S,&e)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)
15、果:若棧S不空,則以e返回棧頂元素。</p><p> Push(&S, e)</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:在棧S的棧頂插入新的棧頂元素e。</p><p> Pop(&S,&e)</p><p> 初始條件:棧S已存在。</p>
16、<p> 操作結(jié)果:刪除S的棧頂元素,并以e返回其值。</p><p> StackTraverse(S,visit())</p><p> 初始條件:棧S已存在。</p><p> 操作結(jié)果:從棧底到棧頂依次對S中的每個元素調(diào)用函數(shù)visit()。</p><p> } ADT Stack</p><
17、;p> ?。?)迷宮的抽象數(shù)據(jù)類型</p><p><b> ADT maze{</b></p><p> 數(shù)據(jù)對象:D={ai,j| ai,j∈{ ' ','#','@','*'},0<=i<=m+1,0<=j<=n+1,m,n<=10}</p>&
18、lt;p> 數(shù)據(jù)關(guān)系:R={ROW,COL}</p><p><b> 基本操作:</b></p><p> InitMaze(&M,a,row,col)</p><p> 初始條件:二維數(shù)組a[row+2][col+2]已存在,其中自第1行至第row+1行,每行中自第1列至第col+1列的元素已有值,并且以值0表示通路,
19、以值1表示障礙。</p><p> 操作結(jié)果:構(gòu)成迷宮的字符型數(shù)組,以空白字符表示通路,以字符‘#’表示障礙,并在迷宮四周加上一圈障礙。</p><p> MazePath(&M)</p><p> 初始條件:迷宮M已被賦值。</p><p> 操作結(jié)果:若迷宮M中存在一條通路,則按以下規(guī)定改變迷宮M的狀態(tài):以字符’*’表示路
20、徑上的位置,字符‘@’表示“死胡同”,否則迷宮的狀態(tài)不變。</p><p> PrintMaze(M)</p><p> 初始條件:迷宮M已存在。</p><p> 操作結(jié)果:以字符形式輸出迷宮。</p><p> } ADT maze</p><p> 五、測試數(shù)據(jù)及運行結(jié)果</p><
21、p><b> 1、調(diào)試分析:</b></p><p> ?。?)本程序有一個核心算法,即求迷宮的路徑,在調(diào)試的時候,出現(xiàn)了兩個問題:沒有想到要用‘@’記號,導(dǎo)致迷宮走不出來;沒有設(shè)置‘found’,不知何時跳出。</p><p> ?。?)原本棧的元素e中除了di—往下一坐標(biāo)位置的方向和seat—當(dāng)前的坐標(biāo)位置,還有一個step—當(dāng)前位置在路徑上的序號,后來發(fā)
22、現(xiàn)step沒什么用,就刪掉了。</p><p> ?。?)函數(shù)ReadCommand中,cmd=getchar();的位置找不準,最后是試出來的。</p><p> ?。?)調(diào)試的時候多次出現(xiàn),沒有錯誤,但是dos環(huán)境下就是執(zhí)行不起來,所以采用了一些輸出變量,判斷到底是哪里出了問題。 </p><p> ?。?)本程序中三個主要的算法:InitMaze,
23、MazePath和MarkPrint的時間復(fù)雜度均為O(m*n), 本程序的空間復(fù)雜度也為O(m*n)(棧所占最大空間)</p><p> 使用說明和運行結(jié)果:</p><p> ?。?)首先以文件形式輸入迷宮數(shù)據(jù),如圖三:</p><p><b> 圖三</b></p><p> ?。?)進入演示程序后,會出現(xiàn)以下
24、界面如圖四: </p><p><b> 圖四0 </b></p><p> 進入“創(chuàng)建迷宮”的命令后,即提示輸入迷宮數(shù)據(jù)的文件名,結(jié)束符為“回車符”,該命令執(zhí)行之后輸出“迷宮建立完成”,且輸出下面可執(zhí)行的操作。如圖五:</p><p><b> 圖五</b></p><p> 進入“執(zhí)行迷
25、宮”的命令后,即提示輸入迷宮入口,出口的坐標(biāo),結(jié)束符為“回車符”,該命令執(zhí)行之后表示迷宮路徑已尋找完成或未找到路徑。請注意:若迷宮中存在路徑,執(zhí)行此命令后,迷宮狀態(tài)已經(jīng)改變,若要重復(fù)執(zhí)行此命令,需重新輸入迷宮數(shù)據(jù)。如圖六:</p><p><b> 圖六</b></p><p> 進入“輸出迷宮”的命令后,即輸出迷宮求出路徑之后的狀態(tài)?!?’表示障礙,‘@’ 表示
26、曾走過但不通,‘*’表示路徑。如圖七:</p><p><b> 圖七</b></p><p> 進入“退出”的命令后,按任意鍵結(jié)束。如圖八:</p><p><b> 圖八</b></p><p><b> 缺點與改進:</b></p><p>
27、; 在定義函數(shù)Mazepath的時候,開始的循環(huán)語句的結(jié)束條件不對,沒有出路時,導(dǎo)致一直出現(xiàn)了不正確的結(jié)果,最后沒有新位置入棧,則返回上一個位置,否則沒有路徑。</p><p> 只是以文件形式輸入迷宮 ,如果迷宮數(shù)據(jù)量大時,要先建好文件還是很浪費時間,如果以隨機產(chǎn)生函數(shù)自動產(chǎn)生迷宮會更好 。</p><p><b> 六、源程序:</b></p>
28、<p> #include <stdio.h></p><p> #include <stdlib.h></p><p> #include <string.h></p><p> #define MAXLEN 10//迷宮包括外墻最大行列數(shù)目</p><p> #define TRU
29、E 1</p><p> #define FALSE 0</p><p> #define OK 1</p><p> #define ERROR 0</p><p> typedef int Status;</p><p> // 坐標(biāo)位置類型 </p><p> typ
30、edef struct{</p><p><b> int r,c;</b></p><p> } PosType;//迷宮中r行c列的位置</p><p><b> //迷宮類型 </b></p><p> typedef struct {</p><p>
31、;<b> int r;</b></p><p><b> int c;</b></p><p> char arr[MAXLEN][MAXLEN];//可取' ','*','@','#'</p><p> }MazeType;
32、 </p><p> typedef struct{</p><p> //int step; // 當(dāng)前位置在路徑上的“序號”</p><p> PosType seat; //當(dāng)前的坐標(biāo)位置</p><p> int di; //往下一坐標(biāo)位置的方向</p><p> }SElemType;</p&
33、gt;<p><b> //結(jié)點類型</b></p><p> typedef struct NodeType{</p><p> SElemType data;</p><p> NodeType *next;</p><p> }NodeType,*LinkType;</p>&
34、lt;p><b> //棧類型 </b></p><p> typedef struct { </p><p> LinkType top;</p><p> int stacksize;</p><p> }SqStack; </p><p> PosType sta
35、rt;</p><p> PosType end;</p><p> MazeType maze;</p><p> bool found;</p><p><b> //創(chuàng)建棧</b></p><p> Status InitStack(SqStack &S)</p>
36、;<p><b> {</b></p><p> S.top=(LinkType)malloc(sizeof(NodeType));</p><p> S.top->next=NULL;</p><p> S.stacksize=0;</p><p> return OK;</p>
37、;<p><b> }</b></p><p><b> //進棧</b></p><p> Status Push(SqStack &S,SElemType &e)</p><p><b> {</b></p><p> LinkTyp
38、e p;</p><p> p=(NodeType*)malloc(sizeof(NodeType));</p><p> p->data=e;</p><p> p->next=S.top;</p><p><b> S.top=p;</b></p><p> S.stac
39、ksize++;</p><p> return OK;</p><p><b> }</b></p><p><b> //判斷是否為???lt;/b></p><p> Status StackEmpty(SqStack S)</p><p><b> {&
40、lt;/b></p><p> if(S.top->next==NULL) return OK;</p><p> return ERROR; </p><p><b> }</b></p><p><b> //出棧</b></p><p> Stat
41、us Pop(SqStack &S,SElemType &e)</p><p><b> {</b></p><p> LinkType p;</p><p> if(StackEmpty(S)) return ERROR;</p><p><b> p=S.top;</b>
42、</p><p> e=p->data;</p><p> S.top=S.top->next;</p><p> S.stacksize--;</p><p><b> free(p);</b></p><p> return OK;</p><p>
43、;<b> }</b></p><p><b> //銷毀棧</b></p><p> Status DestroyStack(SqStack &S)</p><p><b> {</b></p><p> LinkType p;</p><
44、;p> while(S.top!=NULL)</p><p><b> {</b></p><p><b> p=S.top;</b></p><p> S.top=S.top->next;</p><p><b> free(p);</b></p&
45、gt;<p><b> }//一個一個刪除</b></p><p> if(S.top==NULL) return OK;</p><p> else return ERROR;</p><p><b> }</b></p><p> //曾走過但不是通路標(biāo)記并返回OK<
46、;/p><p> Status MarkPrint(MazeType &maze,PosType curpos)</p><p><b> {</b></p><p> maze.arr[curpos.r][curpos.c]='@';//"@"表示曾走過但不通</p><p&g
47、t; return OK;</p><p><b> }</b></p><p> //曾走過而且是通路標(biāo)記并返回OK</p><p> Status FootPrint(MazeType &maze,PosType curpos)</p><p><b> {</b></p
48、><p> maze.arr[curpos.r][curpos.c]='*';//"*"表示可通</p><p> return OK;</p><p><b> }</b></p><p> //選擇下一步的方向</p><p> PosType Nex
49、tPos(PosType &curpos,int i)</p><p><b> {</b></p><p> PosType cpos;</p><p> cpos=curpos;</p><p> switch(i){
50、 //1.2.3.4分別表示東,南,西,北方向</p><p> case 1 : cpos.c+=1; </p><p><b> break;</b></p><p> case 2 : cpos.r+=1; </p><p><b> break;</b></p><
51、;p> case 3 : cpos.c-=1; </p><p><b> break;</b></p><p> case 4 : cpos.r-=1; </p><p><b> break;</b></p><p><b> }</b></p>
52、<p> return cpos;</p><p><b> }</b></p><p> //判斷當(dāng)前位置是否可通 </p><p> Status Pass(MazeType &maze, PosType curpos)</p><p><b> {</b><
53、;/p><p> if(maze.arr[curpos.r][curpos.c]==' ') return TRUE;</p><p> else return FALSE;</p><p><b> }</b></p><p><b> //創(chuàng)建迷宮</b></p>
54、<p> //按照用戶輸入的二維數(shù)組(0或1),設(shè)置迷宮maze的初值,包括加上邊緣一圈的值</p><p> void InitMaze(MazeType &maze, char a[MAXLEN][MAXLEN], int row, int col)</p><p><b> {</b></p><p> ma
55、ze.r=row;</p><p> maze.c=col;</p><p> for(int i=0;i<=col+1;i++){</p><p> a[0][i]='1';</p><p> a[row+1][i]='1';</p><p><b> }&l
56、t;/b></p><p> for(i=0;i<=row+1;i++){</p><p> a[i][0]='1';</p><p> a[i][col+1]='1';</p><p><b> }</b></p><p> for(i=0;
57、i<=maze.r+2;i++){</p><p> for(int j=0;j<maze.c+2;j++){</p><p> if(a[i][j]=='1') maze.arr[i][j]='#';</p><p> else maze.arr[i][j]=' ';</p><
58、p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //求迷宮路徑的偽碼算法:</p><p> Status MazePath(MazeType &maze,PosType start
59、,PosType end)</p><p><b> {</b></p><p> //求解迷宮maze中,從入口start到出口end的一條路徑,若存在,返回TRUE,否則返回FALSE</p><p> PosType curpos;</p><p> SqStack S;</p><p&
60、gt; SElemType e;</p><p> InitStack(S);</p><p> curpos=start;//設(shè)定“當(dāng)前位置”為“入口位置”</p><p> //curstep=1; //探索第一步</p><p> found=false;</p><p><b> do{&
61、lt;/b></p><p> if(Pass(maze,curpos))</p><p><b> {</b></p><p> //當(dāng)前位置可以通過,即是未曾走到過的通道塊留下足跡</p><p> FootPrint(maze,curpos);//做可以通過的標(biāo)識</p><p&g
62、t; //e.step=curstep;</p><p> e.seat=curpos; </p><p> e.di=1; //為棧頂元素賦值</p><p> Push(S,e); //加入路徑</p><
63、p> if(curpos.r==end.r && curpos.c==end.c) found=true;//如果到達終點返回true</p><p><b> else{</b></p><p> curpos=NextPos(curpos,1);//下一位置是當(dāng)前位置的東鄰</p><p><b>
64、}</b></p><p><b> }</b></p><p> else //當(dāng)前位置不能通過</p><p> if(!StackEmpty(S)){</p><p><b> Pop(S,e);</b></p><p>
65、while(e.di==4 && !StackEmpty(S)){</p><p> MarkPrint(maze,e.seat); //留下不能通過的標(biāo)記</p><p><b> Pop(S,e);</b></p><p><b> }</b></p><p>
66、 if(e.di<4){</p><p> e.di++; //換下個方向</p><p> Push(S,e); &
67、#160; //</p><p> curpos=NextPos(e.seat,e.di); //進行探索</p><p><b> }</b></p><p><b> }</b></p><p> }while(!StackEm
68、pty(S)&&!found);</p><p> DestroyStack(S);</p><p> return found;</p><p><b> }</b></p><p> //將標(biāo)記路徑信息的迷宮(字符型方陣)輸出到終端(包括外墻)</p><p> vo
69、id PrintMaze(MazeType &maze)</p><p><b> {</b></p><p> for(int i=0;i<=maze.r+2;i++){</p><p> for(int j=0;j<=maze.c+2;j++){</p><p> printf("
70、; %c",maze.arr[i][j]);//輸出迷宮 </p><p><b> }</b></p><p> printf("\n");</p><p><b> }</b>
71、</p><p><b> }</b></p><p><b> //系統(tǒng)初始化</b></p><p> void Initialization()</p><p><b> {</b></p><p> system("cls&q
72、uot;); </p><p> printf(" welcome to the game!!! "); </p><p> printf("\n********************
73、****************************");</p><p> printf("\n*創(chuàng)建迷宮--c 執(zhí)行迷宮--m 輸出迷宮--p 退出--q*");</p><p> printf("\n************************************************");&l
74、t;/p><p> printf("\n\n 操作:-");</p><p><b> }</b></p><p> //讀入操作命令符,顯示提示信息</p><p> void ReadCommand(char &cmd)</p><
75、;p><b> {</b></p><p><b> do{</b></p><p> if(cmd=='c')</p><p><b> {</b></p><p> printf("\n***********************
76、*******************");</p><p> printf("\n*選擇操作 :執(zhí)行迷宮--m *");</p><p> printf("\n* 退出--:q
77、*");</p><p> printf("\n******************************************");</p><p> printf("\n\n 操作:-");</p><p><b> }</b></p><p>
78、 else if(cmd=='m'){</p><p> printf("\n******************************************");</p><p> printf("\n*選擇操作 :輸出迷宮--p
79、0; *");</p><p> printf("\n* 退出--:q *");</p><p> printf("\n******************************************");</p
80、><p> printf("\n\n 操作:-");</p><p><b> }</b></p><p> else if(cmd=='p'){</p><p> printf("\n******************************************&
81、quot;);</p><p> printf("\n*選擇操作 :執(zhí)行迷宮--c *");</p><p> printf("\n* 退出-
82、-:q *");</p><p> printf("\n******************************************");</p><p> printf("\n\n &
83、#160; 操作:-");</p><p><b> }</b></p><p> cmd=getchar();</p><p> }while(!(cmd=='c'||cmd=='m'||cmd=='p'||cmd=='q'));</p>
84、<p><b> }</b></p><p> //解釋cmd--具體執(zhí)行</p><p> void Interpre(char cmd)</p><p><b> {</b></p><p> switch(cmd){</p><p> case
85、'c':{</p><p> int rnum, cnum, i=0,m=1,n=1;</p><p> char a2[MAXLEN][MAXLEN];</p><p> char input[1];</p><p> char data[1000];</p><p> printf(&qu
86、ot;\n請輸入迷宮數(shù)據(jù)文件名!\n");</p><p> scanf("%s",input);</p><p><b> FILE *fp;</b></p><p> fp=fopen(input,"r");</p><p><b> if(!fp)
87、</b></p><p><b> { </b></p><p> printf("\n不能打開文件\n"); </p><p><b> break; </b></p><p><b> }</b></p><p&g
88、t; while(!feof(fp))</p><p><b> {</b></p><p> fscanf(fp,"%s",&data[i]);</p><p><b> if(i==0)</b></p><p><b> {</b>&l
89、t;/p><p> rnum=(int)data[i]-(int)'0';</p><p><b> }</b></p><p><b> if(i==1)</b></p><p><b> {</b></p><p> cnum=
90、(int)data[i]-(int)'0';</p><p><b> }</b></p><p><b> if(i>=2)</b></p><p><b> {</b></p><p> if(n>cnum){m++;n=1;}</
91、p><p> a2[m][n]=data[i];</p><p><b> n++;</b></p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b></p&
92、gt;<p> fclose(fp);</p><p> InitMaze(maze, a2, rnum, cnum);</p><p> printf("\n迷宮建立完成?。n");</p><p><b> break;</b></p><p><b> }&l
93、t;/b></p><p> case 'm':{</p><p> printf("\n請輸入迷宮入口的坐標(biāo),以空格為間隔:--");</p><p> scanf("%d %d",&start.r,&start.c);</p><p> printf(&
94、quot;\n請輸入迷宮出口的坐標(biāo),以空格為間隔:--");</p><p> scanf("%d %d",&end.r,&end.c);</p><p> MazePath(maze, start, end);</p><p><b> break;</b></p><p
95、><b> }</b></p><p> case 'p':{</p><p><b> if(found)</b></p><p><b> {</b></p><p> printf("\n求解迷宮的結(jié)果如下--\n");
96、</p><p> PrintMaze(maze);</p><p><b> }</b></p><p> else printf("\n找不到路徑!\n");</p><p><b> }</b></p><p><b> } &l
97、t;/b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> char cmd;</b></p><p> Initialization();&
98、lt;/p><p><b> do{</b></p><p> ReadCommand(cmd); //讀入一個操作符命令</p><p> Interpre(cmd); //解釋執(zhí)行命令操作符</p><p>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(迷宮問題)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)迷宮問題課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計—迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計迷宮問題課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--求解迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告----迷宮問題
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---迷宮問題求解
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---迷宮問題
- c數(shù)據(jù)結(jié)構(gòu)迷宮問題課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)迷宮課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)迷宮課程設(shè)計
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---迷宮
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----迷宮求解
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-迷宮求解
- 迷宮游戲數(shù)據(jù)結(jié)構(gòu)課程設(shè)計
評論
0/150
提交評論