ImageVerifierCode 换一换
格式:DOC , 页数:23 ,大小:255.26KB ,
资源ID:1140951      下载积分:10 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1140951.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中南民族大学《数据结构》学生实验报告.doc)为本站会员(文****钱)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

中南民族大学《数据结构》学生实验报告.doc

1、院 系: 计算机科学学院 专 业: 网络工程 年 级: 2012 课程名称: 数据结构 学 号: 姓 名: 指导教师: 2014 年 6 月日年级 2012 学号专业 网络工程 班号 1201 组号 姓名实验名称 第二章 线性表 实验室实验目的或要求了解线性表的逻辑结构和各种存储表示方法,以及定义在逻辑结构上的各种基本运算及其在某种存储结构上如何实现这些基本运算。在熟悉上述内容的基础上,能够针对具体应用问题的要求和性质,选择合适的存储结构设计出相应的有效算法,解决与线性表相关的实际问题。实验原理(算法流程)1、 实验内容单链表的各种基本操作,包括创建,查找,插入,删除,输出,合并等2、存储结构

2、描述及说明链式存储结构typedef struct node char data; struct node *next; linklist;3、函数说明linklist *rcrect(linklist *head) 尾插法建立单链表void print(linklist *head) 输出函数,输出单链表。linklist location(linklist *head) 按序号查找函数,按序号查找单链表中数据。linklist inset(linklist *head) 插入函数,在单链表中插入数据。linklist delet(linklist *head) 删除函数,删除单链表中的数据

3、。int main() 主函数,程序运行调用各子函数。4、模块之间的调用关系开 始主函数创建单链表查找单链表数据删除数据输出函数插入函数程序清单:#include#include#include typedef struct node /定义节点类型char data;struct node *next; /因为上面结构体的类型名是 struct node linklist 是别名 linklist; /一般 List 顺序表,linklist 链表int main()int a;linklist *head;head=(linklist *)malloc(sizeof(linklist);p

4、rintf(“请先建立单链表!n“); linklist *rcrect(linklist *head); /调用尾插法rcrect(head);/*linklist *hcrect(); /或者调用头插法hcrect();*/for(;)printf(“n 您想要对此单链表表做何种操作 :n0.退出t1.查找t2.插入t3. 删除n“);scanf(“%d“,if(a3)printf(“您输入的数字有误,请重新输入 !n“);if(a=0) /退出exit(0);if(a=1) linklist location(linklist *head); /调用按序号查找函数location(hea

5、d); if(a=2)linklist inset(linklist *head); /调用插入函数inset(head);if(a=3)/调用删除函数 linklist delet(linklist *head); /调用删除函数delet(head);return 0;/1.尾插法建立单链表linklist *rcrect(linklist *head) /尾插法 链接到已经建立好的单链表的末尾linklist *p,*last;char ch; /用于输入字符last=head; printf(“请输入你要存储的字符,以!号结束:n“);while(ch!=!)p=(linklist *

6、)malloc(sizeof(linklist);scanf(“%c“,p-data=ch; /每次都申请一个节点,数据域存放数据,指针域为空 / printf(“%ct“,p-data); 可以用来测试存储是否正确 last-next=p; last=p; /上一次的最后一个元素的地址赋给 lastp-next=NULL; void print(linklist *head); /调用输出函数print(head);return head;/2.输出函数函数void print(linklist *head) linklist *p;p=head-next;printf(“n 你存储的数据为

7、 :n“);while(p!=NULL)printf(“%ct“,p-data);p=p-next;/3.按序号查找函数linklist location(linklist *head)linklist *p;int i,k=0;p=head;printf(“n 请输入你要查找链表中第几个元素: n“);scanf(“%d“, while(pk+;if(ki|!p)printf(“输入的序号有误,查找失败!n“);exit(0); elseprintf(“第%d 个元素的值为:%cn“,i,p-data);return *head;/4.插入函数linklist inset(linklist

8、*head)linklist *p,*p1; int i,k=0;char ch;p=head; /不能为 head-nextprintf(“请输入你要在链表的第几个位置?t 插入什么元素?n“);scanf(“%d %c“, p1=(linklist *)malloc(sizeof(linklist); /新建一个节点p1-data=ch;p1-next=NULL; while(pk+; if(ki-1|!p)printf(“输入的序号有误,插入失败!n“);exit(0); else p1-next=p-next;p-next=p1;printf(“插入后的新数据为:n“); /输出插入后

9、的新数据 p=head-next;while(p!=NULL)printf(“%ct“,p-data);p=p-next; printf(“n“);return *head;/5.删除函数linklist delet(linklist *head)linklist *p,*p1,*p2;p=head;int i,k=0;printf(“请输入你要删除第几个元素:n“);scanf(“%d“,while(pk+;if(ki-1|!p)printf(“输入的序号有误,删除失败!n“);exit(0); else p2=p-next;p-next=p2-next;free(p2);printf(“删

10、除后的新数据为:n“); /输出插入后的新数据 p=head-next;while(p!=NULL) printf(“%ct“,p-data);p=p-next; printf(“n“);return *head; 组内分工(可选)无实验结果分析及心得体会实验结果截图:心得体会:通过本次实验对于线性表的运用更熟练了,对于单链表的建立,删除,插入,输出更加熟悉。成绩评定教师签名:年 月 日年级 2012 学号 2012213773专业 网络工程 班号 1201 组号 姓名 黄勇实验名称 第三章 栈和队列 实验室实验目的或要求在掌握栈(队列)特点的基础上,懂得在什么样的情况下能够使用栈(队列) 。

11、能熟练使用栈(队列)的一种存储表示,以及在该存储结构上如何实现栈(队列)的基本操作。在熟悉上述内容的基础上,能够针对具体应用问题的特点,选择栈(队列)设计出相应的有效算法,解决与栈(队列)相关的实际问题。实验原理(算法流程)1、实验内容括号匹配的检验。合法的括号包括()和【】两类,利用栈判断任意输入的一个括号序列是否匹配对出现,若是输出“right“,否则输出”error!“。且提示错误原因。2、 存储结构描述及说明typedef struct int *base;int *top;int stacksize;SqStack;顺序存储结构3、函数说明int InitStack(SqStack

12、*S) 构造函数,构造一个空栈 S,该栈预定义大小为STACK_INIT_SIZEint push(SqStack *S,int e) 插入函数,在栈 S 中插入元素 e 为新的栈顶元素。int pop(SqStack *S,int *e) 删除函数,若栈不空,则删除 S 的栈顶元素,用 e 返回其值,并返回 1;否则返回 ERRORvoid match(char str) 检测函数,对输入的表达式进行检测,括号是否匹配,匹配则返回配对,否则返回不配对。int main() 主函数。4、模块之间的调用关系主函数构造函数 插入函数删除函数检测函数程序清单:#include “stdio.h“#i

13、nclude “conio.h“ #include “stdlib.h“ #define ERROR -1 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef struct int *base;int *top;int stacksize;SqStack;int InitStack(SqStack *S) S-base=(int *)malloc(STACK_INIT_SIZE*sizeof(int);if(!S-base) printf(“n 磁盘不足.n“); getch();exit(ERROR); S-top=S-

14、base;S-stacksize=STACK_INIT_SIZE;return 1; int push(SqStack *S,int e) if(S-top-S-base=S-stacksize) S-base=(int *)realloc(S-base,(S-stacksize+STACKINCREMENT)*sizeof(int);if(!S-base) printf(“n 磁盘不足 .n“); getch(); exit(ERROR); S-top=S-base+S-stacksize; S-stacksize+=STACKINCREMENT; *S-top+=e; return 1;

15、int pop(SqStack *S,int *e) if(S-top=S-base) printf(“n 栈已满.n“); return ERROR; *e=*-S-top;return 1; void match(char str) SqStack S;char *p;int e; InitStack( p=str; while(*p) if(*p=(|*p=|*p=)push( else if(*p=)|*p=|*p=)if(*(S.top-1)+1=*p|*(S.top-1)+2=*p)pop(else printf(“n 不配对.n“); return; p+; if(S.top=S.base)printf(“n 配对.n“);else printf(“n 不配对!n“); int main() char str100;printf(“n 输入表达式:n“); gets(str); match(str); getch();

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。