数据结构实验报告顺序表和链表
更新时间:2023-03-17 15:44:02 阅读量: 综合文库 文档下载
实验报告
课程名称数据结构
实验项目实验一线性表的生成与操作
题目一顺序表和链表的创建与基本操作
系 别___ _计算机学院 _ ______ 专 业____计算机大类_ __ 班级/学号__(1406/2014011288)_____ 学生姓名 _______(孙文学)_________ 实验日期 _(2015年10月19日) 成 绩 _______________________
指导教师黄改娟
实验题目:实验一线性表的生成与操作
------顺序表和链表的创建与基本操作(自己所选择实验题目,必
填)
一、 实验目的
1) 掌握线性表的顺序存储和链式存储结构; 2) 验证顺序表及链表的基本操作的实现;(验证)
3) 理解算法与程序的关系,能够将算法转换为对应程序; 4) 体会线性表在实际应用中能够解决的问题。(设计、综合)
二、 实验内容
1) 根据实验一题目列表,选定题目,说明题目的主要需求;
2) 结合所选定的题目,定义存储结构,并完成对应应用的线性表创建、插入、删除、
查找等基本操作的算法描述; 3) 程序编码实现,并获得运行结果。
三、 报告内容
1) 实验题目及主要存储结构定义
(提示:请根据所选定题目,描述存储结构) 题目:顺序表和链表的创建及基本操作
顺序表我是采用数组存储的,链表是采用结构体存储的 2) 结合题目,说明对相应线性表的基本操作算法描述
(提示:可用自然语言、流程图、伪代码等均可,要求对每一个操作,都给出具体的算法描述) 基本操作: #顺序表#
(1) 插入:在线性表中的x位置插入y----将x位置及之后的元素都往后挪一位,
将y的值赋给a[x].
(2) 删除:删除位置为x的元素----另y=a[x],然后x之后的元素都往前挪一位。 (3) 查找:寻找值为y的元素----从a[0]开始,若a[i]==y,则返回i,否则i++。 #链表#
(1) 插入:当
i
小于要插入的位置
x
时,i++,插入
p->data------p->next=s->next;s->next=p;
(2) 删除:当p->data不等于要删除的值x时,p=p->next;
q=p->next; p->next=q->next; free(q);
(3)查找:当p->data!=x时,p=p->next,找到之后返回p->data 3) 程序源码
(提示:列出所编写程序的代码。如果利用图形界面IDE等编程,这里只要求写出关键操作的程序代码。此外,程序一定要有注释说明) 1. 顺序表的基本操作(用数组实现)
#include
int *a; int N,i,j,e,x;
printf(\请输入线性表长度N:\scanf(\
a=(int *)malloc(N*sizeof(int)); for(i=0;i printf(\初始顺序表为:\for(i=0;i printf(\插入请输0,删除请输1,查找输入2:\scanf(\if(x==0){ printf(\请输入插入位置i和数e:\插入 scanf(\ a=(int *)realloc(a,(N+1)*sizeof(int)); for(j=N-1;j>=i-1;j--) { a[j+1]=a[j]; } a[i-1]=e; for(i=0;i else if(x==1){ //删除 printf(\请输入删除位置i:\scanf(\for(i;i else if(x==2){ //查找 printf(\请输入查找位置i:\scanf(\ e=a[i-1]; printf(\} else { printf(\输入错误!\} free(a); a=NULL; return 0; } 2. 单链表的基本操作 #include ElemType data; struct Node *next; } LNode,*LinkList; void Build(LinkList L)//建立一个带头结点的单链表 { int n; LinkList p,q; p=L; printf(\请输入n:\\n\ scanf(\ printf(\请输入n个数据元素:\\n\ while(n--) { q=(LinkList)malloc(sizeof(LNode)); scanf(\ q->next=NULL; p->next=q; p=q; } } void Print(LinkList L)//计算单链表的长度,然后输出单链表 { int num=0; LinkList p; p=L->next; while(p) { num++; printf(\ p=p->next; } printf(\长度为%d\\n\ } void Tips() { printf(\按数字键选择相应操作\\n\ printf(\输出单链表及其长度:\\n\ printf(\删除值为x的结点:\\n\ printf(\在第n个位置插入值X:\\n\ printf(\查找值为X的位置n:\\n\ printf(\退出:\\n\ } void Delete(LinkList L,int x)//删除值为x的结点 { LinkList p,q; p=L; while( p->next &&p->next->data!=x) p=p->next; if(p->next) { q=p->next; p->next=q->next; free(q); printf(\删除成功!!\\n\\n\ Print(L); }
正在阅读:
数据结构实验报告顺序表和链表03-17
2022年中考地理复习七下第七章南方地区第1课时好题随堂演练(有答04-20
PPI在某些领域的临床应用08-06
中考语文专题复习:口语交际题及答案10-03
SL176-2007《水利水电工程施工质量检验与评定规程》 - word版06-26
益达市场分析报告01-01
市政桥梁预应力施工技术分析12-12
人力资源管理制度之招聘管理制度02-27
hl鼓风机房设计03-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 数据结构
- 顺序
- 实验
- 报告
- 中国教育管理史
- 星河时代花园测量方案 - 图文
- 基本公共卫生服务居民满意度调查表及答案
- 2015-2016年(2)《数字逻辑设计与应用》期末试卷A卷参考评分标准
- 贵阳职业技术学院申请表 2
- 上海轨道交通14号线5标=项目前期监理工作策划(方案)=汇报=刘学渊=2015-11-12 - 图文
- 环境设备课程复习资料
- 华东理工大学概率论答案-23
- 预防接种知识竞赛试卷A
- 土地一级开发威尼斯水城项目可行性研究报告 - 图文
- 临床医生如何应用诊断病理学
- 审核人员简历及技术能力调查表
- 砖混、外砖内模结构构造柱、圈梁、板缝钢筋绑扎工艺标准
- 家政服务员的职业礼仪
- 电压驻波比测量 实验报告
- 本科生毕业设计(论文)原创性及知识产权声明
- 张善孖题画诗欣赏(5)
- 一、如何制定教学目标
- 液相沉淀法在材料合成中应用进展
- 2019-2020年从业资格考试备考《会计从业资格》习题精选资料含答案解析(十七)