版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一 线性表的操作一、 实验目的1 掌握顺序表的基本操作:包括顺序表的插入、删除和查找等运算。2 掌握单链表的基本操作:包括单链表的建立、插入、删除和查找。二、 实验内容1 一个顺序表的第一个元素的存储地址是90,每个元素的长度是2,则第六个元素的存储地址是( )。2 表长为n的顺序表中,若在第i(1in+1)个数据元素之前插入一个数据元素,需要向后移动( )个数据元素;删除第i(1in)个数据元素需要向前移动( )个数据元素;在等概率的情况下,插入一个数据元素平均需要移动( )个数据元素;在等概率的情况下,删除一个数据元素平均需要移动( )个数据元素。3 顺序表基本操作的实现。将顺序表的插
2、入和删除操作的实现函数补全完整,同时完成inverse函数,用以实现顺序表的就地逆置,调试和验证程序。#include<stdio.h>#include <math.h>#include <stdlib.h>#define list_init_size 100#define listincreament 10typedef int elemtype;typedef struct elemtype *elem; int length; int listsize; sqlist;bool initlist_sq(sqlist& l) l.elem=(el
3、emtype * )malloc(list_init_size*sizeof(elemtype); if (! l.elem) printf("overflow!"); return false; l.length=0; l.listsize= list_init_size; return true; bool listinsert_sq(sqlist &l, int i, elemtype e) elemtype *p,*q; if (i < 1 | i > l.length+1) printf("插入位置不正确!"); retur
4、n false; if (l.length >= l.listsize) elemtype* newbase=(elemtype*)realloc(l.elem,(list_init_size+listincreament)*sizeof(elemtype); if(!newbase) printf("overflow!"); return false; l. elem=newbase; l.listsize+=listincreament; /*将第i到第n个元素向后移动一位,将e插入到第i个元素的位置,表长增1*/ return true;bool listdel
5、ete_sq(sqlist &l, int i, elemtype &e) elemtype *p,*q;if (i < 1) | (i > l.length) printf("删除位置不正确!"); return false; /* 将第i个元素的值给e,将第i+1到第n个元素向前移动一位,表长减1*/ return true;void display_sq(sqlist l) for (int i=1; i<=l.length;i+) printf("%d ",l.elemi-1); printf("n&q
6、uot;); /*编写一个算法实现顺序表的就地置逆。例如:顺序表(2,45,7,89,45,34),逆置后为(34,45,89,7,45,2)。要求不重新开辟顺序表空间。*/void inverse(sqlist &l)int main()sqlist sq;elemtype e;if(!initlist_sq(sq)exit(0);for(int i=1;i<=10;i+)printf("请输入要插入的元素:");scanf("%d",&e);listinsert_sq(sq,i,e); printf("逆置前的元素序列
7、为:");display_sq(sq); inverse(sq); printf("逆置后的元素序列为:");display_sq(sq);doprintf("请输入要删除的元素的位置:");scanf("%d",&i);while(!listdelete_sq(sq,i,e);printf("删除的元素为:%dn",e); printf("删除后的元素序列为:");display_sq(sq);return 0;4、单链表的操作。补全创建单链表的算法,同时写一算法将单链表中值
8、重复的结点删除,使所得的结果链表中所有结点的值均不相同,调试并验证程序。#include <stdio.h>#include <stdlib.h>typedef int elemtype;typedef struct node elemtype data; struct node *next;lnode,*linklist;/输入n个数据的值,建立带头结点的单链表lvoid createlist( linklist &l, int n ) void display(linklist l)lnode *p;p=l->next;while(p)printf("%d ",p->data);p=p->next;printf("n");/*写一算法将单链表中值重复的结点删除,使所得的结果链表中所有结点的值均不相同。*/void deletelist(linklist &l)int main()linklist l;int n;printf("请输入要创建的单链表中的结点数:");scanf("%d",&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 道路边坡生态防护与绿化技术方案
- 植物蛋白冰淇淋的口感优化-洞察与解读
- 移动支付环境下快餐品牌的顾客行为分析-洞察与解读
- 二苯乙烯的生物降解性研究-洞察与解读
- 山西医科大学《兽医法规学》2026-2027学年第一学期期末试卷含解析
- 泉州幼儿师范高等专科学校《太阳能利用原理与技术》2026-2027学年第一学期期末试卷含解析
- 天津滨海汽车工程职业学院《土建工程及施工》2026-2027学年第一学期期末试卷含解析
- 云南国防工业职业技术学院《近现代建筑评析》2026-2027学年第一学期期末试卷含解析
- 扬州大学广陵学院《刑事代理实务》2026-2027学年第一学期期末试卷含解析
- 人工智能技术在跨境贸易信任分析中的应用-洞察与解读
- 无菌操作技术培训课件
- 生产产品数据管理制度
- 生石灰(CAS号:1305-78-8)理化性质与危险特性一览表
- 成都经济技术开发区(龙泉驿区)区属国有企业招聘笔试题库2026
- 2025年秋季学期国家开放大学《管理英语4》期末机考复习题库
- 河南省西学中考试题目及答案
- 2025版中国经皮冠状动脉介入治疗指南课件
- 雨课堂学堂云在线《地学景观-探秘﹒审美﹒文化(重大 )》单元测试考核答案
- 雨课堂在线学堂《长安与中国佛教期末复习题及答案》考核测试答案
- 痰液的粘稠度及量的评估
- JJF 2275-2025高频电压标准装置校准规范
评论
0/150
提交评论