




免費(fèi)預(yù)覽已結(jié)束,剩余45頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)結(jié)構(gòu)實(shí)驗(yàn)報告姓名:韋勇 學(xué)號:149074165班級:軟件工程141班學(xué)院:計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院實(shí)驗(yàn)時間:2016指導(dǎo)老師:陳學(xué)進(jìn)實(shí)驗(yàn)一 約瑟夫問題實(shí)現(xiàn)1、實(shí)驗(yàn)?zāi)康?1)掌握線性表的兩類存儲結(jié)構(gòu)(順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu))的描述方法。2)掌握在順序結(jié)構(gòu)中實(shí)現(xiàn)查找、插入、刪除操作的基本方法。3)掌握在各種鏈表結(jié)構(gòu)中實(shí)現(xiàn)查找、插入、刪除操作的基本方法2、實(shí)驗(yàn)內(nèi)容 設(shè)有n個人圍坐在一圈,現(xiàn)從指定的第個人開始報數(shù),數(shù)到第m個人出列,然后從出列的下一個人重新開始報數(shù),數(shù)到第m個人又出列,如此重復(fù),直到所有的人全部出列為止。3、實(shí)驗(yàn)要求 針對實(shí)驗(yàn)內(nèi)容,認(rèn)真設(shè)計(jì)算法,上機(jī)過程中,能夠熟練運(yùn)用高級語言的程序調(diào)試器DEBUG調(diào)試程序,上機(jī)后,認(rèn)真整理源程序及其注釋,完成實(shí)驗(yàn)報告(包括源程序、實(shí)驗(yàn)結(jié)果、算法分析、心得體會等)順序結(jié)構(gòu):#include stdio.h#include stdlib.h#define MAXSIZE 100typedef struct nodeint dataMAXSIZE;int length;SeqList,*PSeqList;int Delete(PSeqList PL,int i)int j;if(!PL)printf(表不存在);return (-1);if(iPL-length)printf(刪除位置不合法);return(0);for(j=i;jlength;j+)PL-dataj-1=PL-dataj;PL-length-;return(1);PSeqList Init(void)int n,i;PSeqList PL;PL=(PSeqList)malloc(sizeof(SeqList);if(PL) PL-length=0;printf(請輸入圓桌人數(shù):n);scanf(%d,&n);if(nMAXSIZE)printf(溢出);for(i=0;idatai=i;PL-length+;return PL;int josephus(PSeqList josephus,int s,int m)/*josephus為順序表,s為首位置,m為計(jì)數(shù)值*/int s1,i,w;if(!josephus-length)printf(表中無元素);return(0);s1=s-1;printf(輸出約瑟夫序列:n);for(i=josephus-length;i0;i-)s1=(s1+m-1)%i;w=josephus-datas1;printf(%dt,w);Delete(josephus,s1+1);return(1);int main()PSeqList PL;int m,n;PL=Init();printf(請分別輸入起始序號和計(jì)數(shù)值:n); scanf(%d%d,&m,&n);josephus(PL,4,3);return(0);鏈?zhǔn)浇Y(jié)構(gòu):#include #include #include typedef struct nodeint data;struct node* next;Lnode,*Linklist;/*創(chuàng)建一個單鏈表并初始化*/ Linklist create(int n) /*此函數(shù)帶回一個指向鏈表頭的指針*/ int i; Linklist head; Linklist p1,p2; p1=p2=(Linklist)malloc(sizeof(Lnode); /*開辟一個新單元*/ p1-data=0; head=p1; for(i=1;idata=i; p2-next=p1; p1-next=head; return(head);int josephus(Linklist josephus,int s,int m)Linklist p,pre;int count;if(!josephus) printf(表中無元素); return(0);p=josephus;for(count=1;countnext;printf(輸出約瑟夫序列:n);while(p!=p-next)pre=p-next;while(pre-next!=p) pre=pre-next;for(count=1;countnext;printf(%dt,p-data);pre-next=p-next;free(p);p=pre-next;printf(%dt,p-data);free(p);return(1);int main()Linklist PL;int s,m,n,i;printf(請輸入圓桌的人數(shù),起始位置,間隔);scanf(%d%d%d,&s,&m,&n); PL=create(s); /* for(i=0;idata); PL=PL-next; */josephus(PL,m,n); return(1);靜態(tài)鏈表:#include stdio.h#include stdlib.h#define MAXSIZE 100typedef structint data;int next;SNode;typedef structSNode spMAXSIZE;int SL;StList,*PStList;PStList Init(int n)int i;/設(shè)置游標(biāo) PStList PL;PL=(PStList)malloc(sizeof(StList);if(PL) PL-SL=0;for(i=0;ispi.next=i+1;PL-spi.data=i; PL-spn-1.next=0;PL-spn-1.data=n;return(PL);void josephus(PStList p,int s,int m,int n)int i,s1,h,j;printf(輸出約瑟夫序列:n); s1=s-1;for(i=n;i1;i-) for(j=1;jsps1.next;h=s1;s1=p-sps1.next;printf(%d , p-sps1.data); p-sph.next=p-sps1.next; s1 = p-sps1.next;printf(%d , p-sps1.data); int main()int s,m,n;printf(請輸入人數(shù):n);scanf(%d,&n); printf(請輸入起始位置和間隔:n);scanf(%d%d,&s,&m);PStList PL;PL=Init(n);josephus(PL,s,m,n);return(0);心得體會:通過這次的是實(shí)驗(yàn)我可以基本掌握線性表的兩類存儲結(jié)構(gòu)(順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu))的描述方法。掌握在各種鏈表結(jié)構(gòu)中實(shí)現(xiàn)查找、插入、刪除操作的基本方法,掌握在順序結(jié)構(gòu)中實(shí)現(xiàn)查找、插入、刪除操作的基本方法。并且將這些方法運(yùn)用到實(shí)際的約瑟夫問題中,難點(diǎn)在于對約瑟夫算法的理解,在實(shí)驗(yàn)中因?yàn)槲茨苌羁汤斫饧s瑟夫算法出過很多小問題使得輸出的約瑟夫序列不正確。實(shí)驗(yàn)二:數(shù)制轉(zhuǎn)換算法實(shí)現(xiàn)1、實(shí)驗(yàn)?zāi)康?1)掌握棧、隊(duì)列的兩類存儲結(jié)構(gòu)(順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu))的描述方法。2)掌握在不同結(jié)構(gòu)中實(shí)現(xiàn)基本操作的基本方法。3)掌握在兩種結(jié)構(gòu)中實(shí)現(xiàn)查找、插入、刪除操作的基本方法2、實(shí)驗(yàn)內(nèi)容 編寫算法實(shí)現(xiàn)任意一個十進(jìn)制數(shù)轉(zhuǎn)換r進(jìn)制數(shù)。3、實(shí)驗(yàn)要求 針對實(shí)驗(yàn)內(nèi)容,認(rèn)真設(shè)計(jì)算法,上機(jī)過程中,能夠熟練運(yùn)用高級語言的程序調(diào)試器DEBUG調(diào)試程序,上機(jī)后,認(rèn)真整理源程序及其注釋,完成實(shí)驗(yàn)報告(包括算法、源程序、實(shí)驗(yàn)結(jié)果、算法分析等)源程序1(順序結(jié)構(gòu)):#include#include#include#definemaxsize100typedefstructintdatamaxsize;inttop;seqstack,*Pseqstack;typedefstructintdatamaxsize;intrear,front;seqqueue,*Pseqqueue;Pseqstackinit_seqstack(void)PseqstackS;S=(Pseqstack)malloc(sizeof(seqstack);if(S)S-top=-1;returnS;/初始化棧intempty_seqstack(PseqstackS)if(S-top=-1)return1;elsereturn0;/判斷棧是否為空intpush_seqstack(PseqstackS,intx)if(S-top=maxsize-1)printf(thestackisfull);return0;elseS-top+;S-dataS-top=x;return1;/入棧intpop_seqstack(PseqstackS,int*x)if(empty_seqstack(S)printf(thestackisempty);return0;else*x=S-dataS-top;S-top-;return1;/出棧intdestory_seqstack(Pseqstack*S)if(*S)free(*S);*S=NULL;return0;/銷毀棧intconversion(PseqstackS,intn,intr)intx;/*if(!r)printf(基數(shù)不能為0);return0;*/S=init_seqstack();/*if(!S)printf(初始化棧失敗);return0;*/while(n)push_seqstack(S,n%r);n=n/r;while(!empty_seqstack(S)pop_seqstack(S,&x);printf(%d,x);destory_seqstack(&S);return0;/整數(shù)部分轉(zhuǎn)換Pseqqueueinit_seqqueue(void)PseqqueueQ;Q=(Pseqqueue)malloc(sizeof(seqqueue);if(Q)Q-front=0;Q-rear=0;returnQ;/初始化隊(duì)列intempty_seqqueue(PseqqueueQ)if(Q&Q-rear=Q-front)return1;elsereturn0;/判斷隊(duì)是否為空intin_seqqueue(PseqqueueQ,intx)if(Q-rear+1)%maxsize=Q-front)printf(隊(duì)滿);return-1;elseQ-rear=(Q-rear+1)%maxsize;Q-dataQ-rear=x;return0;/入隊(duì)intout_seqqueue(PseqqueueQ,int*x)if(empty_seqqueue(Q)printf(隊(duì)空);return0;elseQ-front=(Q-front+1)%maxsize;*x=Q-dataQ-front;return1;/出隊(duì)voiddestory_seqqueue(Pseqqueue*Q)if(*Q)free(*Q);*Q=NULL;/銷毀隊(duì)列inttranslate(PseqqueueQ,floata,intb)intx;/*if(!b)printf(基數(shù)不能為0);return0;*/Q=init_seqqueue();/*if(Q)printf(隊(duì)列初始化失敗);return-1;*/while(a)in_seqqueue(Q,int(a*b);a=a*b-int(a*b);while(!empty_seqqueue(Q)out_seqqueue(Q,&x);printf(%d,x);destory_seqqueue(&Q);return1;/小數(shù)部分的轉(zhuǎn)化voidchange(PseqstackS,PseqqueueQ)intz,r;floatc,x;printf(請輸入需要轉(zhuǎn)換的數(shù):);scanf(%f,&x);printf(進(jìn)制是:);scanf(%d,&r);z=int(x);c=x-int(x);printf(轉(zhuǎn)換后的結(jié)果是:);conversion(S,z,r); printf(.);translate(Q,c,r);/鏈接棧、隊(duì)列intmain()/floatX;/intR;PseqstackS;/S=(Pseqstack)malloc(sizeof(seqstack);PseqqueueQ;/Q=(Pseqqueue)malloc(sizeof(seqqueue);change(S,Q);return0;2鏈?zhǔn)浇Y(jié)構(gòu):#include #include typedef int datatype;typedef struct nodedatatype data;struct node *next; StackNode,*PStackNode; typedef struct PStackNode top; LinkStack,*PLinkStack; typedef struct Node datatype data; struct Node *next; Qnode, *PQNode;/*鏈隊(duì)結(jié)點(diǎn)的類型*/ typedef struct PQNode front , rear;LinkQueue, *PLinkQueue; /*將頭尾指針封裝在一起的鏈隊(duì)*/ PLinkStack Creat1() /*初始化鏈棧,入口參數(shù):空,返回值:鏈棧指針,NULL表示初始化失敗*/ PLinkStack S; S=(PLinkStack)malloc(sizeof(LinkStack); if(S) S-top =NULL; return S; int Empty(PLinkStack S) /*判斷鏈棧是否為空,入口參數(shù):鏈棧指針*/ return (S-top =NULL); void Push(PLinkStack S,datatype x) /*進(jìn)棧,入口參數(shù):鏈棧指針*/ PStackNode P; P=(PStackNode)malloc(sizeof(StackNode); if(!P) printf(內(nèi)存溢出!n); else P-data =x; P-next =S-top ; S-top =P; void Pop(PLinkStack S ,datatype *x) /*出棧,*x保存被刪除的元素值*/ PStackNode P; if(Empty(S) printf(棧空不能出棧!n); else *x=S-top-data; P=S-top ; S-top =S-top-next ; free(P); void Convert1(PLinkStack S,int n,int r) /*轉(zhuǎn)化,入口參數(shù):鏈棧指針,數(shù)n,進(jìn)制r*/ int x; S=Creat1(); while(n) Push(S,n%r); n/=r; while(!Empty(S) Pop(S,&x); printf(%d,x); PLinkQueue Creat2() /*初始化一新隊(duì)列,入口參數(shù):無,返回值:新鏈隊(duì)列指針,NULL表示失敗*/ PLinkQueue Q; Q=(PLinkQueue)malloc(sizeof(LinkQueue); /*申請鏈隊(duì)結(jié)點(diǎn)*/ if (Q) Q-front=NULL; Q-rear=NULL; return Q;int Empty_LinkQueue(PLinkQueue Q)if(Q&Q-front =NULL&Q-rear =NULL)return 1;elsereturn 0;void In_LinkQueue (PLinkQueue Q, datatype x) /*入隊(duì)操作,入口參數(shù):鏈隊(duì)列和待入隊(duì)元素x ,返回值:1表示成功,0表示系統(tǒng)內(nèi)存溢出*/PQNode p;p=(PQNode)malloc(sizeof(Qnode);if(!p) printf(內(nèi)存溢出!n);return ;p-data=x;p-next=NULL;if (Empty_LinkQueue(Q) Q-front = Q-rear = p;else Q-rear -next=p; Q-rear = p; /*入隊(duì)完成*/void Out_LinkQueue (PLinkQueue Q , datatype *x) /*出隊(duì)操作,入口參數(shù):鏈隊(duì)列,返回值:1表示成功,0表示隊(duì)空*/ PQNode p; if (Empty_LinkQueue(Q) printf(隊(duì)空不能出隊(duì)!n); /*隊(duì)空不能出隊(duì)*/ return ; else *x=Q-front-data; p=Q-front; Q-front=Q-front-next; free(p); if(!Q-front) Q-rear=NULL; /*出隊(duì)完成*/void Convert2(PLinkQueue Q,float n,int r)int x;Q=Creat2(); while (n) In_LinkQueue(Q,n*r); n=n*r-int(n*r); while (!Empty_LinkQueue(Q) /依次從隊(duì)列中彈出每一個余數(shù),并輸出之Out_LinkQueue(Q,&x); printf(%d,x);void Change(PLinkStack S,PLinkQueue Q) int r,X;float n,Y;printf(請輸入要轉(zhuǎn)化的數(shù):);scanf(%f,&n);printf(請輸入要轉(zhuǎn)化的進(jìn)制r:);scanf(%d,&r);X=int(n);Y=n-X;printf(轉(zhuǎn)化的r進(jìn)制數(shù)為:);Convert1(S,X,r);printf(.);Convert2(Q,Y,r);getchar(); int main() PLinkStack S; PLinkQueue Q; Change(S,Q); return 0; 心得體會:通過本次實(shí)驗(yàn)我基本掌握了棧、隊(duì)列的兩類存儲結(jié)構(gòu)(順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu))的描述方法。掌握在不同結(jié)構(gòu)中實(shí)現(xiàn)基本操作的基本方法。掌握在兩種結(jié)構(gòu)中實(shí)現(xiàn)查找、插入、刪除操作的基本方法,通過運(yùn)用隊(duì)列和堆棧,實(shí)現(xiàn)了數(shù)制轉(zhuǎn)換問題,實(shí)驗(yàn)中主要是要注意鏈?zhǔn)胶晚樞虻幕静僮鞯倪\(yùn)用,有些地方是有區(qū)別的,要注意這方面的使用。實(shí)驗(yàn)三 二叉樹的遍歷試編寫程序: (1) 建立下面這樣一棵二叉樹 (2) 后序遍歷這棵二叉樹 (3) 按層次遍歷 (4) 求葉子數(shù)和深度。 #include stdio.h#include stdlib.htypedef char Datatype; #define MAXSIZE 100typedef struct bnodeDatatype data;struct bnode *lchild,*rchild;BNode,*BTree;typedef structBTree dataMAXSIZE;int front,rear;seqqueue,*Pseqqueue;typedef structBNode *node;int flag;Data; typedef struct node Data DataMAXSIZE;int top;SeqStack,*PSeqStack;PSeqStack Init(void)PSeqStack S;S=(PSeqStack)malloc(sizeof(SeqStack);if(S)S-top=-1;return S; int Empty(PSeqStack S)if(S-top=-1)return 1;elsereturn 0;int Push(PSeqStack S,Data x)if(S-top=MAXSIZE-1)return 0;elseS-top+;S-DataS-top=x;return 1;int Pop(PSeqStack S,Data *x)if(Empty(S)return 0;else*x=S-DataS-top;S-top-;return 1;/棧的基本操作Pseqqueue init_seqqueue(void)Pseqqueue Q;Q=(Pseqqueue)malloc(sizeof(seqqueue);if(Q)Q-front=0;Q-rear=0; return Q;/初始化隊(duì)列int empty_seqqueue(Pseqqueue Q)if(Q&Q-rear=Q-front)return 1;else return 0;/判斷隊(duì)是否為空int in_seqqueue(Pseqqueue Q,BTree x)if(Q-rear+1)%MAXSIZE=Q-front)printf(隊(duì)滿);return -1;elseQ-rear=(Q-rear+1)%MAXSIZE;Q-dataQ-rear=x;return 0;/入隊(duì)int out_seqqueue(Pseqqueue Q,BTree *x)if(empty_seqqueue(Q)printf(隊(duì)空);return 0;elseQ-front=(Q-front+1)%MAXSIZE;*x=Q-dataQ-front;return 1;/出隊(duì)void destory_seqqueue(Pseqqueue *Q)if(*Q)free(*Q);*Q=NULL;/銷毀隊(duì)列void PreOrder(BTree t)if(t)printf(%c,t-data);PreOrder(t-lchild);PreOrder(t-rchild);/*void PreOrder1(BTree t) PSeqStack S; BTree p=t; S=Init(); while(p|!Empty(S) if(p) printf(%c,p-data); Push(S,p); p=p-lchild; else Pop(S,&p); p=p-rchild; void InOrder1(BTree t)PSeqStack S;BTree p=t;S=Init();while(p|!Empty(S)if(p)Push(S,p);p=p-lchild;elsePop(S,&p);printf(%c,p-data);p=p-rchild;void InOrder(BTree t)if(t)InOrder(t-lchild);printf(%c,t-data);InOrder(t-rchild);void PostOrder(BTree t)if(t)PostOrder(t-lchild);PostOrder(t-rchild);printf(%c,t-data); void PostOrder1(BTree t)PSeqStack S1;PSeqStack S2;BTree p;p=t;S1=Init();S2=Init();while(p|!Empty(S2)if(p)Push(S1,p);Push(S2,p);p-p-rchild;elsePop(S2,&p);p=p-lchild;while(!Empty(S1)Pop(S1,&p);printf(%c,p-data);*/后序遍歷第二種 void PostOrder2(BTree t)PSeqStack S;Data Sq;BTree p=t;S=Init();while(p|!Empty(S)if(p)Sq.flag=0;Sq.node=p;Push(S,Sq);p=p-lchild; elsePop(S,&Sq);p=Sq.node;if(Sq.flag=0)Sq.flag=1;Push(S,Sq);p=p-rchild;elseprintf(%c,p-data);p=NULL; BTree create() BTree T;char c; scanf(%c,&c); if(# = c) T=NULL; else T =(BTree)malloc(sizeof(BNode); T-data = c; T-lchild=create(T-lchild); T-rchild=create(T-rchild); return T; void HBiTree(BTree t)Pseqqueue q;q=init_seqqueue();if(t=NULL) return;BTree p=t;printf(%c,p-data);if(p-lchild) in_seqqueue(q,p-lchild);if(p-rchild) in_seqqueue(q,p-rchild);while(!empty_seqqueue(q)out_seqqueue(q,&p);printf(%c,p-data);if(p-lchild) in_seqqueue(q,p-lchild); if(p-rchild) in_seqqueue(q,p-rchild);destory_seqqueue(&q);return;int leaf(BTree T) if (T = NULL) return 0; if (T-lchild = NULL & T-rchild = NULL) return 1; return leaf(T-lchild) + leaf(T-rchild);/求葉子的個數(shù) int Height(BTree t)int h1,h2;if(t=NULL) return 0;elseh1=Height(t-lchild);h2=Height(t-rchild);if(h1h2) return h1+1; else return h2+1; int main()BTree T;int a=0;int b=0; T=create();/PreOrder(T);/InOrder(T);/PostOrder(T);/PreOrder1(T);/InOrder1(T);PostOrder2(T);printf(n);HBiTree(T);printf(n);a=Height(T);printf(深度為:%dn,a);b=leaf(T); printf(葉子數(shù):%dn,b);return 0;實(shí)驗(yàn)心得:這次實(shí)驗(yàn)加深了我對二叉樹的印象,尤其是對二叉樹的各種遍歷操作有了一定的了解,從非遞歸的遍歷算法中可以更好的理解先序,中序和后序遍歷算法的理解,同時認(rèn)識到,在設(shè)計(jì)程序時輔以圖形化的描述是非常有用的。實(shí)驗(yàn)四 圖的遍歷算法實(shí)現(xiàn)一、 實(shí)驗(yàn)?zāi)康恼莆請D的基本操作,運(yùn)用圖的鄰接矩陣和鄰接表解決問題。二、 實(shí)驗(yàn)要求建立圖的鄰接矩陣或鄰接表,實(shí)現(xiàn)圖的遍歷(DFS/BFS)三、 實(shí)驗(yàn)內(nèi)容1、圖的鄰接矩陣或鄰接表的建立#include #include /建立鄰接矩陣 #define MAXSIZE 30#define VertexType char#define Edgetype inttypedef structVertexType vertexsMAXSIZE; Edgetype arcsMAXSIZEMAXSIZE; int vertexNum,edgeNum; MGrah;int CreatMgrah(MGrah *G)int i,j,k,t;scanf(%d%d,&(G-vertexNum),&(G-edgeNum);for(i=0;ivertexNum;i+)scanf(%c,&G-vertexsi);for(i=0;iedgeNum;j+)for(j=0;jedgeNum;j+)G-arcsij=0;for(k=0;kedgeNum;k+)scanf(%d%d,&i,&j);G-arcsij=1;/建立鄰接表 #define MAXSZIE 30typedef struct nodeint adjvertex;/InfoType info;struct node * next;EdgeNode;typedef structVertexType vertex;EdgeNode* firstedge;VertexNode;typedef structVertexNode adjlistMAXSIZE;int vertexNum,edgeNum;ALGraph;void CreatALGraph(ALGraph* G)int i,j,k;EdgeNode* p; scanf(%d,%d,&(G-vertexNum),&(G-edgeNum);for(i=0;ivertexNum;i+)scanf(%c,&(G-adjlisti.vertex);G-adjlisti.firstedge=NULL;for(k=0;kedgeNum;k+)scanf(%d,%d,&i,&j);p=(EdgeNode*)malloc(sizeof(EdgeNode);p-adjvertex=j;p-next=G-adjlisti.firstedge;G-adjlisti.firstedge=p;int main()ALGraph* G;CreatALGraph(G);MGrah *G1;CreatMgrah(G1);2、圖的遍歷算法實(shí)現(xiàn)#include #include #define MAXSIZE 100#define VertexType char#define False 0#define True 1typedef structint dataMAXSIZE;int front,rear;SeqQueue,*PseqQueue;PseqQueue Init()PseqQueue Q;Q=(PseqQueue)malloc(sizeof(SeqQueue);if(Q)Q-front=0;Q-rear=0;return Q;int Empty(PseqQueue Q)if(Q&Q-front=Q-rear)return(1);elsereturn(0);int IN(PseqQueue Q,int x)if(Q-rear+1)%MAXSIZE=Q-front)printf(隊(duì)滿);return -1; elseQ-rear=(Q-rear+1)%MAXSIZE;Q-dataQ-rear=x;return 1;int Out (PseqQueue Q,int *x)if(Empty(Q)printf(隊(duì)空);return -1; elseQ-front=(Q-front+1)%MAXSIZE;*x=Q-dataQ-front;return 1; /*隊(duì)列的初始化*/ typedef struct nodeint adjvertex;/InfoType info;struct node *next;EdgeNode;typedef structVertexType vertex;EdgeNode *firstedge;VertexNode;typedef structVertexNode adjlistMAXSIZE;int vertexNum,edgeNum;ALGraph;void CreatALGraph(ALGraph *G)int i,j,k;EdgeNode *p; printf(請輸入(頂點(diǎn)數(shù),邊數(shù)):n); scanf(%d%d,&(G-vertexNum),&(G-edgeNum);printf(n請輸入頂點(diǎn)信息:n);for(i=0;ivertexNum;i+)scanf(n%c, &(G-adjlisti.vertex);G-adjlisti.firstedge=NULL;printf(n請輸入邊的信息:n); for(k=0;kedgeNum;k+)scanf
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 豎爐氫冶金工藝在低碳環(huán)保鋼鐵生產(chǎn)中的應(yīng)用探索
- 標(biāo)桿企業(yè)指標(biāo)管理辦法
- 全基因組關(guān)聯(lián)分析在小麥抗旱性狀研究中的應(yīng)用
- 《公共圖書館法》分析:結(jié)構(gòu)特點(diǎn)、生成邏輯與優(yōu)化策略
- 廚房高檔原料管理辦法
- 橋梁安全等級劃分標(biāo)準(zhǔn)
- 發(fā)票管理辦法追訴時限
- 江蘇水利中介管理辦法
- 因公往來香港管理辦法
- 基于BIM技術(shù)的項(xiàng)目全生命周期信息管理平臺構(gòu)建
- 基于MATLAB的賽程安排方案設(shè)計(jì)
- 架線弧垂計(jì)算表(應(yīng)力弧垂插值計(jì)算)
- 保安培訓(xùn)課程表(完整版)咨詢培訓(xùn)
- 《飛機(jī)電子顯示器顯示符號》
- 贏利:未來10年的經(jīng)營能力
- 光伏支架風(fēng)荷載分析
- 頭等大事:脫發(fā)青年自救指南
- 馬拉色菌相關(guān)疾病診療指南(2022年版)
- 哈雷之約:基于指數(shù)成分股調(diào)整的選股策略
- 湖北省隨州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名居民村民委員會明細(xì)及行政區(qū)劃代碼
- 磁流體密封課件
評論
0/150
提交評論