




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构实验报告实验序号:2 实验项目名称:顺序表的操作学号姓名专业、班级实验地点实1#514指导教师林仙丽实验时间2013-10-18一、实验目的及要求1.掌握线性表的顺序存储类型;2.熟练掌握顺序表的基本操作和具体的函数实现。二、实验设备(环境)及要求微型计算机;windows 操作系统;Microsoft Visual Studio 6.0集成开发环境。三、实验内容与步骤1.设A、B均为用数组实现的List类型的顺序表,试设计一个函数Alternate(A,B),从表A中第1个元素开始,交替地用表A和表B中元素组成一个新表。 运行结果截图:2.顺序表表示和实现线性表的如下:# define LIST_INIT_SIZE 10# define LISTINCREMENT 5typedef struct ElemType *elem; int length ; int ListSize; sqlist;int InitList_sq(sqlist *l) /*initial the list l*/ l-elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType); if (!l-elem) printf(无法分配空间!); return 1; else l-length=0; l-ListSize=LIST_INIT_SIZE; printf(ok); return 0; int ListInsert_Sq(sqlist *L,int i, ElemType e) ElemType *q,*p;if(iL-length+1) return 1;if(L-length=L-ListSize) ElemType *newbase;newbase=( ElemType *)realloc(L-elem, (L-ListSize+LISTINCREMENT)*sizeof(ElemType);if(!newbase) return 1; L-elem=newbase; L-ListSize+=LISTINCREMENT;q=&(L-elemi-1);for(p=&(L-elem L-length-1);p=q;-p) *(p+1)=*p;*q=e; +L-length;return 0;【要求】实现算法将一个顺序表中从第i个结点开始连续插入k个结点。运行结果截图:4、 分析与讨论 刚开始敲主函数时,由于一直没有给结构体指针*m初始化,导致运行一直出错,找了一个多小时的bug,还是没找着。最后在大神杨靖钰的帮助下,先定义了一个结构体list,再用指针m指向list,即m=*list。之后一切都变简单了。五、教师评语签名:日期:成绩附源程序清单:1.#include#include#define LIST_INIT_SIZE 10#define LISTINCREMENT 5typedef int ElemType;typedef struct ElemType *elem; int length ; int ListSize; sqlist;int InitList_sq(sqlist *l) /*initial the list l*/ l-elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType); if (!l-elem) printf(无法分配空间!); return 1; else l-length=0; l-ListSize=LIST_INIT_SIZE; printf(okn); return 0; void Alternate(sqlist *A,sqlist*B)ElemType i;sqlist list;sqlist *C;C=&list;InitList_sq(C);C-length=A-length+B-length;while(i)if(C-length=C-ListSize) ElemType *newbase;newbase=( ElemType *)realloc(C-elem, (C-ListSize+LISTINCREMENT)*sizeof(ElemType);C-elem=newbase;C-ListSize+=LISTINCREMENT;else break;for(i=0;ilength;i+)C-elem2*i=A-elemi;C-elem2*i+1=B-elemi;for(i=0;ilength;i+)printf(%d ,C-elemi);void main()ElemType i;sqlist list1,list2,*A,*B;A=&list1;B=&list2;InitList_sq(A);InitList_sq(B);printf(请输入A指向的5个整数:n);for(i=0;ielemi);A-length=i;printf(请输入B指向的5个整数:n);for(i=0;ielemi);B-length=i;Alternate(A,B);printf(n);2.#include#include# define LIST_INIT_SIZE 10 /线性表存储空间的初始分配量# define LISTINCREMENT 5 /线性表存储空间的分配增量typedef int ElemType;typedef struct int *elem; int length ; /当前长度 int ListSize; /当前分配的存储容量 sqlist;int InitList_sq(sqlist *l) /*initial the list l*/l-elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType);if (!l-elem)printf(无法分配空间!);return 1;elsel-length=0;l-ListSize=LIST_INIT_SIZE;printf(okn);return 0;int ListInsert_Sq(sqlist *L,int i, int e) int *q,*p;if(iL-length+1) return 1;if(L-length=L-ListSize) int *newbase;newbase=( ElemType *)realloc(L-elem, (L-ListSize+LISTINCREMENT)*sizeof(ElemType);if(!newbase)return 1;L-elem=newbase;L-ListSize+=LISTINCREMENT;q=&(L-elemi-1);for(p=&(L-elem L-length-1);p=q;-p) *(p+1)=*p;*q=e;+L-length;return 0;void main()int i,j,k,b;int a1LIST_INIT_SIZE,a2100;sqlist list,*m;m=&list;b=InitList_sq(m);printf(请输入10个整数:n);for(j=0;jelemj);m-length=j;printf(请输入i和k的值:n);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025全民《乡村振兴战略》知识竞赛题库含答案
- 出租库房安全培训课件
- 出差安全培训总结课件
- 招商银行笔试题库及参考答案
- 陕西金太阳2025年9月高三联考15C政治(含答案)
- 2025版关于商业转让合同示范文本
- 2025年未经授权的合同是否有效?国家公积金贷款还款指南
- 冲床安全生产培训总结课件
- 气调包装智能化-洞察及研究
- 冲压工厂安全培训内容课件
- 2025年人教版新教材数学三年级上册教学计划(含进度表)
- 2025-2030AI辅助药物研发创新趋势分析与投资机会评估报告
- 2025仓库保管员试题及答案
- 牛羊养殖技术课件合集
- 实验室设备管理员培训
- 5086铝合金电辅助拉伸:锯齿塑性失稳与变形机理的深度剖析
- 美团公司配送管理制度
- 2025年四川省成都市中考生物真题(解析版)
- 保险执业登记管理制度
- 2025-2030中国电子墨水屏幕行业市场发展趋势与前景展望战略分析研究报告
- 口腔数字化技术课件
评论
0/150
提交评论