实验一线性表的基本操作及应用.doc

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构实验报告 (实验一实验二) 班级:软件121 学号:201200834122 姓名:程猛 实验一 线性表的基本操作及应用 【实验目的】 理解线性表的逻辑结构特性是数据元素之间存在着线性关系,掌握顺序表的特点是逻辑上相邻的元素的存储地址也相邻,熟练掌握线性表的查找、插入和删除等算法并灵活运用这些算法。顺序表顺序表顺序表顺序表顺序表以表为存储结构编写程序求解约瑟夫问题。编号为1,2,···,n的n个人围坐在一圆桌旁,从第s个人开始报数,报到第m的人退席,下一个人又重新从1开始报数,依此重复,直至所有的人都退席#include stdafx.h #include stdio.h #include stdlib.h #define SIZE 10 #define REMENT 5 typedef struct { int *elem; int length; int lsize; }Sqlist; Sqlist L; void state_initlist(Sqlist L)//线性表的初始化 { L.elem =(int*)malloc(SIZE*sizeof(int)); L.length =0; L.lsize =SIZE; } void creatlist(Sqlist L)//线性表的建立 { int *p; int e; L.elem =(int*)malloc(sizeof(int)); printf(请输入线性表的数据:\n); scanf_s(%d,e); *(L.elem)=e; for(int i=1;i10;i++) { p=(int*)malloc(sizeof(int)); scanf_s(%d,p); e=*p; *(L.elem +i)=e; L.length ++; } } int insertelem(Sqlist L,int i,int e)//插入 { int *p,*q; if(i0||iL.length-1 ) exit(0); if(L.length =L.lsize ) { L.elem =(int*)realloc(L.elem ,(L.lsize +REMENT)*sizeof(int)); if(!L.elem ) exit(0); L.lsize +=REMENT; } q=L.elem +i; for(p=L.elem +L.length;p=q;p--) { *(p+1)=*p; } *q=e; ++L.length ; return 0; } int deletlist(Sqlist L,int i)//删除 { int *p,*q; int e; if(i0||iL.length ) exit(0); q=L.elem +i; e=L.elem [i]; for(p=L.elem +L.length ;q=p;q++) *q=*(q+1); --L.length ; return 0; } void main() { int i,a,b,k;//(1) do { printf(请选择要进行的操作:.初始化 2.建立 3.插入4.删除5.退出\n); scanf(%d,k); switch(k) { case 1:state_initlist(L);break; case 2:creatlist(L);break; case 3: state_initlist(L);//(3) creatlist(L);//(4) printf(请输入插入线性表的位置i的值:\n);//(5) scanf_s(%d,i);//(7) printf(请输入要插入线性表的值:\n);//(8) scanf_s(%d,a);//(9) b=insertelem(L,i,a);//(10) printf(输出新的线性表的数据:\n); for(int j=0;j=L.length;j++) { printf(%d,*(L.elem +j)); printf(\t); } printf(\n); system(pause); printf(\n);break; case 4: state_initlist(L);//(3) creatlist(L);//(4) printf(请输入要删除的线性表中数据的位置i:\n);//(6) scanf_s(%d,i);//(7) b=deletlist(L,i);//(11) printf(输出新的线性表的数据

文档评论(0)

DQWvpUSYMv + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档