版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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年三基护理考试题库试题道(含答案)
- 2026年医护人员三基三严考试题库(含答案)
- 2026年表格技能模拟题及答案详解
- 2026年3月计算机二级C++模拟题及答案详解
- 2026年精馏模拟试题选择模拟试卷(含答案)
- 2026年职业道德考模拟题及答案详解
- 小学近视工作总结报告
- 店铺消防安全常识培训
- 《电机拖动原理》课件
- 2026中国工业废水零排放技术路线与成本效益分析报告
- 2026-2032年中国智能辅助治疗行业市场动态分析及发展趋向研判报告
- 2026年度国家工作人员学法用法考试题库(含答案)
- 2026年成都市金牛区人民检察院公开招聘编外人员笔试参考题库及答案详解
- 2026年上海市建筑三类人员项目负责人(安全员B证)考试题库
- 《整 理收纳》高职现代家政服务专业全套教学课件
- 湖南省湘潭市2027届高三上学期第一次模拟考试英语试卷(含答案)
- IPC-4101 标准中文版文档
- 第一单元 健康生活(单元自测)科学教科版六年级上册2026秋
- 2026年贵州省现代种业集团有限公司第二批人才招聘考试备考试题及答案详解
- 2026统考专升本英语:英语550个高频核心词
评论
0/150
提交评论