2023年数据结构C语言版实验报告.docx
《2023年数据结构C语言版实验报告.docx》由会员分享,可在线阅读,更多相关《2023年数据结构C语言版实验报告.docx(19页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、数据结构(C语言版)实验报告专业:计算机科学与技术、软件工程学号:班级:软件二班姓名:朱海霞指导教师:刘遵仁青岛大学信息工程学院2 0 23年10月bb a ”是回文,而“abab”不是回文。实验重要环节(1)数据从键盘读入;(2)输出要判断的字符串;运用栈的基本操作对给定的字符串判断其是否是回文,若是则输出“Ye s ”,否则输出“N 0”。程序代码:# i n cl u d ei n clude# define TRUE 1#def i ne FALSE 0#defi ne OKIdefine ERROR 0# deHne OVERFLOW-2defln e N 1 00# de fine
2、 STACK_ I NIT_SIZE 100#de f i ne STACKINCREMENT。 1 0type d ef s tru c t i nt *b a se; g/在栈构造之前和销毁之后,ba s e的值为NULLi n t *top; g o栈顶指针int g,sta c k s ize; 。/当前已分派的存储空间,以元素为单位 S q Stack;int In i tSt a c k (Sq Stack &S) /构造一个空栈Si f (!(S. b a sc=(int *)ma 1 loc ( S TA C K_ I N I T_SI Z E*sizeo f(in t) ex
3、it(OVERFLOW);/ 存储分派失败S.top=S. bas e ;S.st a cksiz e = S TACK_INIT_S I ZE;ret urn OK;int St a c k Em p t y (Sq S tack S)若栈S为空栈,则返回TRUE,否则返回FALSEif( S .to p =S .base)ret u rn T RUE;el s ereturn FALS E;in t Pu s h (SqStack &S, int e)/插入元素c为新的栈顶元素i f(S. to p -S. b a se=S.stac k siz e ) / 栈满,追加存储空间(S.b a
4、 se=(int *) rea 1 loc(S.ba s e,(S.s t acks i ze+STACKINCREMENT)*s i eof(int);i f(! S. base)exit (OVERFLOW); /存储分派失败S. t o p=S. b a se+S. s tack size;S. st acks i z e+=STACKIN C REMENT;*(S. t op)+=e;re t u r n OK;i nt Pop (SqS t ack &S, in t & e ) /若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERRORif( S .top= S .
5、base)r e t u rn E RRO R;e=*-S. to p ;re t urn O K ;i nt m a i n ()SqS t a c k s;int i,ej,k=l;c har chN = 0 , p ,bN = 0;if( I n i tS tac k(s)/初始化栈成功(p r i n tf(请输入表达式八n”);g e ts (ch);P=ch;while (*p)/没到串尾Push( s ,*p+);d for(i=0;iN;i+) i f(!S t ackEmp t y(s)栈不空Po p( s ,e);/弹出栈顶元素b i= e ;fo r (i=0;i n ,
6、 &G-e) ;/输入顶点数和边数s c anf(%c,& a );p rintf (Input V e r t e x string:);for (i=0;in: i+)(s canf(%cu,&a);G-vex s i=a;G-vex s i=a;/读入顶点信息,建立顶点表fo r (i=0;in;i+) for(j= 0 ;jn; j+)。G-edg es il j =0;/初始化邻接矩阵pr i n tf( I nput edges, Crcat Adjacency M a trix n );f or(k= 0 ; k e;k+) 读入e条边,建立邻接矩阵sea n f( ” % d
7、%d”,& i ,&);/输入边(Vi,V j )的顶点序号。G -edg e sij j = 1 ;G-edges ji =1 ; /若为无向图,矩阵为对称矩阵;若建立有向图,去掉该条 语句)=定义标志向量,为全局变量=:lypedef e n um FALSE, T R UE Boolean;Bo o lean visited M a x Verte x Num;/=DFS:深度优先遍历的递归算法=vo i dDFSM (MG r aph *Ginli) 以V i为出发点对邻接矩阵表达的图G进行DFS搜索,邻接矩阵是0, 1矩阵给出你的编码/= B FS: 广度优先遍历= = void B
8、FS(MG r a ph *G,i n t k ) 以Vk为源点对用邻接矩阵表达的图G进行广度优先搜索给出你的编码=主程序 main void main()M G raph *G;G=(MG r 叩h *)mall oc ( s izeof(MGraph); 为图 G 申请内存空间 CrcatM G raph(G);建立邻接矩阵pr i ntf(Prin t Graph DFS:);DFS(G) ;/深度优先遍历princf(n); p ri n t f (P rint Gmph BFS:):BFS(G3);prin t f (n);)2.邻接链表作为存储结构#include std i o
9、. h#i n elude s t d 1 i b.h #def i ne Ma x V e rtexN u m 5 0 t ypedef s t ru ct nodei n t ad j vex;s tr u c t node *next: E dgeN o de;t yp e d ef s t ruct v n odech a r ve r tex;/ /以序号为3的顶点开始广度优先遍历EdgeNode *firs t e d ge;/定义最大顶点数边表结点/邻接点域链域/顶点表结点/顶点域/边表头指针 Vert e x Node; Vert e x Node;ty p edef Vert
10、ex N ode A d jList M a x V er t exNii m ;/AdjLis t是邻接表类typ e de f st r u c t Adj List a dj 1 i s t;int n, e; A LGr a p h ;邻接表图中当前顶点数和边数图类型/=建立图的邻接表=v oid C r e atALG raph ( A LGraph *G)(in t i , j ,k;c h ar a;E d geN ode * s ;定义边表结点p r int f (Input V e r te x Num( n ) an d EdgesNum(e):);scan f (,%d,
11、 % d, & G-n.&G - e);/ / 读入顶点数和边数scan f (%c, & a );pri n t f (Input Vertex string:);for(i= 0 ;in;i+)建立边表scanf( %c,&a);G-adjlisti.veri e x=a;读入顶点信息G-adj 1 i s t i .f i rstedge=NULL;边表置为空表)pri n tf (In p ut edge s ,Creat A d j a cency Lis t n );for (k=0; k e ; k+)/建立边表osc an f (d% d”,&i, & j );osc an f
12、 (d% d”,&i, & j );读入边(V i , Vj)的顶点对序号s=(E d g eN ode *) mal 1 oc (sizeof(Edg e Node);生成边表结点s-adj v e x =j;/邻接点序号为js- n ex t = G -ad j listi .f i rstedge;G-adjlisti .f i rstedge= s ;将新结点*S插入顶点V i的边表头部s=(Edg eNod e *) mall o c(si z e o f(Edge N o de);s-a d j v e x=i;邻接点序号为is-ncx t =G-adjlist|j.fi r st
13、e d ge;G ad j li s t j.f i rste d ge= s ; 将新结点* S插入顶点Vj的边表头部1)/=定义标志向量,为全局变量=t y pe d e f enum F ALSE,TRUE Bo o le a n;B oolean v isi t edMaxVe r t exNum;/= = = =DFS:深度优先遍历的递归算法=void DF S M(ALG ra p h *Gint i) 以V i为出发点对邻接链表表达的图G进行DFS搜索给出你的编码/ /=BFS: 广度优先遍历=vo i d BFS(ALG r aph *G, i nt k)j以Vk为源点对用邻接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 数据结构 语言版 实验 报告
限制150内