2023年新版数据结构C语言版实验报告.docx
《2023年新版数据结构C语言版实验报告.docx》由会员分享,可在线阅读,更多相关《2023年新版数据结构C语言版实验报告.docx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构(C语言版)实验报告专业:计算机科学与技术、软件工程学号:班级:软件二班姓名:朱海霞指导教师:刘遵仁青岛大学信息工程学院2023年1 0月“abba”是回文,而“aba b”不是回文。实验重要环节(1)数据从键盘读入;(2)输出要判断的字符串;(3)运用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Yes”,否则输出 “No”。程序代码:#include#incl u d e # d e fi n e TRUE 1d e f ine FALSE 0# def i ne OK 1def i ne ERROR 0# define OVERFLOW -2define N 10 0#
2、define STACKJN I T_SIZElOo 0#def i ne S T ACKINCREMENTl 0,typedef structint * b ase; 刈 在栈构造之前和销毁之后,ba s e的值为NULLin t * t op;/栈顶指针intsta c ksize;。当前已分派的存储空间,以元素为单位 SqS t ack;int InitSt a c k( S q S t a ck &S) /构造一个空栈Sif(!(S.base=(int*) m al 1 oc (STACK_INIT_S IZE* s i zeo f ( i n t ) exit(OVERFLOW);
3、/存储分派失败S . t o p=S.base;S.stac ksiz e = S TACK INIT S I ZE;r e turn O K;)i nt St a c kEmp t y (SqS t a ck S)/若栈S为空栈,则返回TRUE,否则返回FALSEif( S . top=S.b a se)return TRU E ;els ereturnFALSE;)int Push(Sq S ta c k & S , i n t e)/插入元素e为新的栈顶元素i f( S .t o p -S. b a s e= S .sta c ksize) / 栈满,追加存储空间S. base = (i
4、nt *) realloc(S .base, ( S.stacks i z e + S TACK I N C R E MENT)*sizeof(int);if(! S .base)exit (OVERFLOW);/存储分派失败S t op=S.bas e + S .st a cks i z e;S.st a cksi ze+=STA CKIN C R EMENT;* (S.to p )+=e;re t urn OK;i n t P o p( S qS t ack & S 9int &e) /若栈不空,则删除s的栈顶元素,用e返回其值,并返回OK;否则返回ERRORif(S. t o p=S.
5、b a se)r e tur n ERROR;e =*-S.top;r e t ur n OK;i n t ma i n()S q Stack s;int i,ej,k=l;ch a r c h N = 0 ,*p, b N = 0;if(InitSta c k( s ) /初始化栈成功(printf (”请输入表达式:nn);g ets(ch);P =ch ;wh i le(*p) /没到串尾Push(s,*p+);for( i =0; i N; i+)i f (!S t a ckEmpty(s) / / 栈不空Pop ( s ,e); /弹出栈顶元素b i=e;6)6 f o r( i =
6、 0 ; i n ,&G- e );/ /输入顶点数和边数sea n f(c “,&a);p rin t f(nInp u t Verte x st r i ng:);fo r( i =0; in;i+) o scanf(n% c n,&a);3 G-V e X s i = a ;/ /读入顶点信息,建立顶点表f or(i=0; i n ; i +)。 f or(j=0;j n ; j +)3G-e dges i j=0;初始化邻接矩阵pr i n t f(nInpu t edg e s, C re a t A d jacenc y Matr i xnn);fo r (k=0;ke;k+ +)
7、 / /读入e条边,建立邻接矩阵。sea nf(”d%d”,&i, &j);输入边(V i , Vj)的顶点序号o G-edges i j =1;。G- e d gesj / /若为无向图,矩阵为对称矩阵;若建立有向图,去掉该条语句)/ / = = = = 定义标志向量,为全局变量 = =t yped e f e n um FALSE, T RUE Bo o 1 e a n ;B o ol e an visitedM a x Vert e xNum;/ = = DFS :深度优先遍历的递归算法=vo i d DFSM(MGra ph *G,int i ) 以Vi为出发点对邻接矩阵表达的图G进行
8、DFS搜索,邻接矩阵是0,1矩阵给出你的编码= = =BFS :广度优先遍历= = =voi d B FS (MGraph * G, int k) / /以Vk为源点对用邻接矩阵表达的图G进行广度优先搜索给出你的编码= = = =主程序 ma i n =vo i d mai n ()(in t i ;MG r aph * G;G=(MGraph *)m a lloc(sizeof(MG r aph); 为图 G 申请内存空间C r eatMGra p h (G);/建立邻接矩阵printf(n Prin t G r ap h DFS: );DFS(G);/深度优先遍历p r intf(HnH)
9、;prin t f(n P rint G r ap h BFS : );BFS(G,3);以序号为3的顶点开始广度优先遍历pri n tf(n nn);2.邻接链表作为存储结构#i n c 1 u d eMstdio. h # i ncl u d e n stdli b . h n边表结点边表结点/ /定义最大顶点数int a d jvex;stru c t node *next;邻接点域/链域 Ed g e N o de;t y pedef str u c t v n odecha r vertex;/ /顶点表结点顶点域E d geNode * f ir s te d ge; 边表头指针V
10、e r t e x N od e ;typede f V e rt e xNode AdjLis t M a xVertexN u m;类型/AdjL i s t是邻接表ty p e d ef s t ruct Ad j List adjlist;i n t n ,e; ALG r aph;/ /邻接表/图中当前顶点数和边数/图类型= = = =建立图的邻接表= = = = =v oid CreatA L Grap h (A L Graph *G)rint i,j, k;char a;E d g eNod e *s;/定义边表结点p r intf(nInp u t V ertexNum( n
11、) an d Edge s Num(e): );s c anf( H % d , %dM,&G-n,&G-e) ;/读入顶点数和边数s can f(%c& a );printf(nInput V e rtex s t ring: );for(i=0;in;i+ +)/ /建立边表#defin e M a xVertexNum 5 0 ty p e d e f struct n o d e scanf( n %cn,&a);G- adj li s ti. v e rtex=a;读入顶点信息G adjl i st i .first e d ge=NULL;边表置为空表prin t f(n I n
12、p u t edges,C r e a t Ad j a cen c y L i s t n);for ( k =0; k e ;k+) 建立边表oscanfC%d%d &i, &j);读入边(V i ,V j )的顶点对序号s=(EdgeNode *) malloc(s i zeof (Ed geNode);生成边表结点os-adj v ex=j ;/邻接点序号为jis-next= G a d jl i s t i . f i rs t edge;G-adj 1 i st i .first e d g e =s;将新结点* S插入顶点Vi的边表头部s=(EdgeN ode *)mall o
13、c(s i ze o f(EdgeNode);sadjv e x=i;邻接点序号为is-ne x t =Gadjlistj . f i rstedge;G adjli s tj. firs t e dge=s;/ /将新结点* S插入顶点Vj的边表头部)/=定义标志向量,为全局变量= = =t ypedef enum F ALSE,TRUE Boolean;Bool e an visite d MaxVert e xNum;/=dfs:深度优先遍历的递归算法=void DFSM(ALGraph *G,inti) 以V i为出发点对邻接链表表达的图G进行DFS搜索给出你的编码实验1实验题目:顺序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 新版 数据结构 语言版 实验 报告
限制150内