晓庄-数据结构(C语言版)实验报告课案

上传人:我** 文档编号:114771503 上传时间:2019-11-12 格式:DOC 页数:31 大小:155KB
返回 下载 相关 举报
晓庄-数据结构(C语言版)实验报告课案_第1页
第1页 / 共31页
晓庄-数据结构(C语言版)实验报告课案_第2页
第2页 / 共31页
晓庄-数据结构(C语言版)实验报告课案_第3页
第3页 / 共31页
晓庄-数据结构(C语言版)实验报告课案_第4页
第4页 / 共31页
晓庄-数据结构(C语言版)实验报告课案_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《晓庄-数据结构(C语言版)实验报告课案》由会员分享,可在线阅读,更多相关《晓庄-数据结构(C语言版)实验报告课案(31页珍藏版)》请在金锄头文库上搜索。

1、数据结构(C语言版) 实验报告学院 信息工程学院 班级 15计科2班 学号 15131019 姓名 张旭 指导教师 曹晨 实验一 线性表基本操作和简单程序1 实验目的(1)复习Visual C+ 6.0上机调试程序的基本方法及C语言编程;(2)掌握线性表的基本操作:初始化、插入、删除、取数据元素等运算在链表存储结构上的程序设计方法。2 实验要求(1) 认真阅读和掌握和本实验相关的教材内容。(2) 分别以头插法和尾插法建立两个数据域定义为整型的升序单链表,再将这两个有序链表合并成一个新的无重复元素的有序链表,最后可以根据输入的数据,先找到相应的结点,后删除之。(3) 上机运行程序。(4) 保存和

2、打印出程序的运行结果,并结合程序进行分析。3 程序代码#include#includetypedef struct node int data; struct node *next;node;node * qbuild(node *first)int i,n,a100;node *s;printf(输入n:);scanf(%d,&n);first=(node*)malloc(sizeof(node);first-next=NULL;for(i=0;idata=ai;s-next=first-next;first-next=s;return first; node * hbuild(node *

3、first)int i,n,a100;struct node *s,*r;printf(输入n:);scanf(%d,&n);first=(node*)malloc(sizeof(node);r=first;for(i=0;idata=ai;r-next=s; r=s;r-next=NULL;return first; node * hebing(node *La,node *Lb)node *pa,*pb,*pc,*Lc;pa=La-next;pb=Lb-next;Lc=pc=La;while(pa & pb)if(pa-data data)pc-next =pa;pc=pa;pa=pa-n

4、ext ;else if(pa-data pb-data)pc-next =pb;pc=pb;pb=pb-next; else pc-next =pa;pc=pa;pa=pa-next ;pb=pb-next ;pc-next =pa?pa:pb;free(Lb); return Lc;node * shanchu(node *first,int i) node *p,*q;p=first-next;while(p) if(p-next )-data=i) q=p-next ; p-next =q-next; free(q); break; p=p-next;return first;void

5、 display(node *first)struct node *p;p=first-next;while(p!=NULL) printf(%d ,p-data);p=p-next; printf(n);int main() int m;struct node *a,*b,*c; a=qbuild(a); printf(打印链表a:); display(a); b=hbuild(b); printf(打印链表b:); display(b); c=hebing(a,b); printf(打印链表c:);display(c);printf(输入删除的数m:);scanf(%d,&m);c=sha

6、nchu(c,m);printf(打印删除后的链表c:);display(c); return 0;4 实验结果输入n:5输入a0:9输入a1:5输入a2:4输入a3:3输入a4:1打印链表a:1 3 4 5 9输入n:5输入a0:1输入a1:3输入a2:4输入a3:6输入a4:8打印链表b:1 3 4 6 8打印链表c:1 3 4 5 6 8 9输入删除的数m:5打印删除后的链表c:1 3 4 6 8 9-Process exited after 32.78 seconds with return value 0请按任意键继续. . .5 心得体会本次实验是以后实验的基础,是数据结构中最基本

7、的东西。通过本次试验,我对之前所学习的C语言知识要点有了进一步实践,加深了我对C语言的认识。实验二 利用栈和队列判断字符串是否是回文1 实验目的(1)深入了解栈和循环队列的特性、栈和递归程序设计的关系。(2)要求能灵活运用两种结构来解决有关的应用问题。y2 实验要求(1) 认真阅读和掌握和本实验相关的教材内容。(2) 假设正读和反读都相同的字符序列为“回文”,例如,abba和abcba是回文,abcde 和ababab则不是回文。试写一个算法判别读入的一个以为结束符的字符序列是否是“回文”。(3) 上机运行程序。(4) 保存和打印出程序的运行结果,并结合程序进行分析。3 程序代码#includ

8、e #include #define m 100 typedef struct /定义栈 char datam; int top; zhan; void cshz(zhan *s) /初始化栈 s-top=0; int pdzk(zhan *s) /判断栈是否为空 if(s-top=0) return 0; else return 1; void ruzhan(zhan *s,char x) /入栈 if(s-top=m) printf(栈空n); else s-data+s-top=x; char chuzhan(zhan *s) /出栈 char y; if(s-top=0) printf

9、(栈空n); return 0; else y=s-datas-top; s-top=s-top-1; return y; typedef struct /定义队列 char datam; int front; int rear; dui; void cshdl(dui *q) /初始化队列 q-front=q-rear=0; void rudui(dui *q,char e) /入队 if(q-rear+1)%m=q-front) printf(队列为空n); else q-dataq-rear=e; q-rear=(q-rear+1); char chudui(dui *q) /出对 char f; if(q-front=q-rear) printf(队列为空n); return 0; else f=q-dataq-front; q-front=(q-front+1); return f;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号