数据结构与算法实验报告
数据结构实验报告
题目: 线性表 班级:网络工程1401班 学号: 1408020106 指导教师: 高峰 日期: 2016/7/6
实验一:线性表
一:实验要求
掌握数据结构中线性表的基本概念。
熟练掌握线性表的基本操作:创建、插入、删除、查找、输出、求长度及合并并运算在顺序存储结构撒谎能够的实验。 熟练掌握链表的各种操作和应用。
二.实验内容
1. 编程实现在顺序存储的有序表中插入一个元素(数据类型为整型)。
2. 编程实现把顺序表中从i个元素开始的k个元素删除(数据类型为整型)。
三:实验过程及步骤
源代码:
#include
#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef struct{ int * elem; int length; int listsize; }SqList; //SqList sq;
void InitList_Sq(SqList *sq) //初始化列表 {
sq->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int)); sq->length=0;
sq->listsize=LIST_INIT_SIZE; printf(\申请空间成功---!\\n\}
void GetElem(SqList *sq,int i)//获取第i位置元素的值 {
int *p;
p=&(sq->elem[i-1]); printf(\printf(\}
int ListInsert_Sq(SqList *sq,int i,int a)//在i位置之前插入a {
int *p,*q;
if(i<=0||i>sq->length+1) {
printf(\位置不合法---!\\n\
return 0; }
if(sq->length>=sq->listsize) {
int* newbase=(int *)realloc(sq->elem,(sq->listsize+LISTINCREMENT)*sizeof(int)); if(!newbase) {
printf(\申请空间溢出\\n\return 0; }
sq->elem=newbase;
sq->listsize+=LISTINCREMENT; }
p=&(sq->elem[i-1]);//p指向第i位置的元素
q=&(sq->elem[sq->length-1]);//q指向最后一个元素 for(;q>=p;--q) *(q+1)=*q; *p=a;
++sq->length; return 1; }
int ListDelete_Sq(SqList *sq,int i) //删除i位置上的值 {
int *p,*q;
if(i<1||i>sq->length) return 0;
p=&(sq->elem[i-1]);//p指向第i位置的元素 q=sq->elem+sq->length-1;//q指向最后一个元素 for(++p;p<=q;++p) {
*(p-1)=*p; }
--sq->length; return 1; }
void visit(SqList *sq)//输出数据 {
int i=1;
for(;i<=sq->length;i++) {
int *p;
p=&sq->elem[i-1]; printf(\printf(\} }
void main() {
int i=1,a=0,boo=1,number=0; SqList s,*sq; sq=&s;
InitList_Sq(sq);
printf(\初始化空表\\n\printf(\输入数据个数:\\n\scanf(\
printf(\输入%d个数据:\printf(\
for(;i<=number;i++) {
scanf(\
if(boo=ListInsert_Sq(sq,i,a)) {
printf(\插入成功!---\\n\} else {
printf(\插入不成功,重新插入---!\\n\i=i-1; } }
printf(\输出所有元素\\n\visit(sq); printf(\
printf(\输出删除的位置:\scanf(\
if(boo=ListDelete_Sq(sq,a)) {
printf(\数据删除成功!---\\n\}else {
printf(\没有删除成功---\\n\}
printf(\输出所有元素:\\n\visit(sq); printf(\
printf(\输出要显示数据的位置:\scanf(\
printf(\输出%d位置数值\\n\if(a<0||a>sq->length) {
printf(\输出位置的数据不存在---\\n\} else {
GetElem(sq,a); } }
步骤:
1.初始化空表
2.顺序插入数据后输出所有元素
3.选择删除位置,删除数据后输出所有元素 4.选择查看的数据位置,输出选择查看的数据
四:实验结果及分析
分析:
本程序在实现顺序存储插入以及删除i个元素开始的k个元素删除(数据类型为
整型)。之外在删除、查看是实时输出结果,并且可以查看希望显示数据的位置。
…… 此处隐藏:175字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [学前教育]MC9S12XS256RMV1 xs128芯片手册4
- [学前教育]安东尼语录经典语录
- [学前教育]e级gps控制测量技术设计书
- [学前教育]苏教版2022-2022学年八年级下学期期末
- [学前教育]装修公司推广 营销
- [学前教育]家政服务合同(完整版)
- [学前教育]湖北省2016届高三联考语文试题
- [学前教育]爱立信无涯学习系统LTE题库1-LTE基础知
- [学前教育]揭秘大众柴油车作弊软件原理
- [学前教育]人才流失原因及对策分析
- [学前教育]房屋建筑施工工程劳务分包合同
- [学前教育]国际贸易实务试卷A卷09.6
- [学前教育]校园废品回收活动计划方案书范文格
- [学前教育]电大成本会计试题及答案
- [学前教育]大学物理实验 华南理工出版社 绪论答案
- [学前教育]爱丁堡产后抑郁量表
- [学前教育]液压冲击的危害、产生原因与防止方法(
- [学前教育]学生工作总结高一学生期中考试总结_020
- [学前教育]人民医院医疗废物管理规章制度大全
- [学前教育]阳光维生素的巨大抗癌潜能阅读题答案.d
- 马云在云锋基金江苏论坛闭幕式的发言
- 试论小学体育教育中的心理健康教育-教
- 语文A版一年级下册《语文乐园一》教学
- 2021四川大学物理化学考研真题经验参考
- [人教A版]2015-2016学年高中数学 第二
- 终端网点销售返利协议书
- 江苏省2015年眼科学主治医师青光眼考试
- 2017年部编人教版八年级语文上册教案
- 十一中学七年级英语上册Unit7Howmuchar
- 以赛促教的创新性实验教学机制建设实践
- 平凉市崆峒区2015七年级下生物期末试题
- 琶洲(地块五)A、B塔楼1、2#塔吊基础
- 一级医院工作制度与人员岗位职责
- 2018北京西城区高三二模理科数学试题及
- 炒股密码线技术 - 图文
- 职高学生生涯发展辅导教案
- 语文人教版四年级上册8 世界地图引出的
- 最新最新人教版二年级上册全册数学教案
- 2017高考英语全国2卷精彩试题(有问题
- 普通心理学笔记




