线性表顺序存储运算的算法实现_第1页
线性表顺序存储运算的算法实现_第2页
线性表顺序存储运算的算法实现_第3页
线性表顺序存储运算的算法实现_第4页
线性表顺序存储运算的算法实现_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 昆明理工大学信息工程与自动化学院学生实验报告( 2011 2012 学年 第 1 学期 )课程名称:数据结构 开课实验室:信自楼444 2011年10月8日年级、专业、班学号姓名成绩实验项目名称线性表顺序存储运算的算法实现指导教师教师评语 教师签名: 年 月 日一、 实验题目 掌握线性表链式存储结构的c语言描述及运算算法的实现;体会last域在算法实现所起的作用;理解合理的存储结构设计与算法的存在的关系程序功能:1、主程序2、链表的建立3、链表的数据插入4、链表的数据删除5、链表的数据输出二、所用仪器、材料(设备名称、型号、规格等)兼容计算机一台visual c+三、实验方法、步骤 问题提出

2、 算法设计 编写程序 调试 运行 结果测试操作菜 单线性表的删除线性表的输出及表长线性表的输入线性表的置空线性表的查找线性表的插入四、实验过程原始记录(程序清单)#include<stdio.h>#include<stdlib.h>typedef int datatype; /* 设typedef(定义)datatype(数据类型)为int */#include <stdio.h>#include<stdlib.h> /包含清屏函数的类#include <malloc.h>#define max 300 / 线性表的最大长度设为300

3、typedef struct int datamax; int last; sequenlist; /*顺序表的名称sequenlist*/int caidan() /*菜单函数*/int c=0;printf("-顺序表的基本操作运算-n"); printf(" 1:线性表的置空 2:线性表的输入 n"); printf(" 3:线性表的输出 4:线性表的插入 n"); printf(" 5:线性表的查找 6:线性表的删除 n"); printf(" 0:退出系统 n"); printf(&q

4、uot;-n"); printf("请输入选项【0-6】: "); do scanf("%c",&c); while(!(c>='0'&&c<'7'); return c;void setnull(sequenlist *p) p->last=0; int input( sequenlist *p,int x)int i;/循环变量int n; /输入数据的个数printf("请输入要输入的数据个数:");scanf("%d",&a

5、mp;n);if(p->last>=max) printf("顺序表格已满,请退出运行"); for (i=1;i<=n;i+) printf("第%d个:",i);scanf("%d",&p->datai-1);p->last+;return (n-1);void output(sequenlist *p) printf("n顺序表的内容为:nn"); printf("表长为:%dn",p->last); int b; printf("表中

6、的元素为:n"); for(b=0;b<p->last;b+) printf("%d ",p->datab); printf("n");int insert(sequenlist *p,int x,int i) printf("输入要插入的元素位置:");scanf("%d",&i);printf("输入要插入的元素:");scanf("%d",&x);int j; if(i<1|i>p->last+1)print

7、f("选择插入的位置错误!"); return 0; if(p->last>=max) printf("顺序表格已满."); for(j=p->last-1;j>=i-1;j-)/从第i个结点开始后移 p->dataj+1=p->dataj; p->datai-1=x; p->last+;return (1);void search( sequenlist *p,int t) printf("输入要查找的位置:");scanf("%d",&t); int i;

8、 for(i=0;i<p->last;i+ ) if( i=t) printf("该元素为:%d",&p->datai); break; if (i=p->last ) printf("错误n"); void delete(sequenlist *p,int i) /删除 int j; if (i<1 | i>p->last) printf("非法位置!n"); exit(0); else for (j=i;j<=p->last;j+) p->dataj-1=p-&g

9、t;dataj; p->last-; void main()sequenlist *p;int key=1; int i,x=0;int t=0;p=(sequenlist *)malloc(sizeof(sequenlist); p->last=0;while(key)switch(caidan()case '1': setnull(p);break;case '2': input(p,x); output(p); break;case '3': output(p); break;case '4': insert(p,x,i); output(p); break;case '5': search(p,t);output(p); bre

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论