- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
课程设计(模板、信管10)
课 程 设 计
课程:数据结构
题目:顺序表31
班级:信管10级
姓名:李燊林
学号:2010508169
设计时间:2011年06月20日——2011年11月20日
成绩:
指导教师:楼建华
一、题目
题目 顺序表31 结构 结构体指针(动态数组,表长) 回传 函数值 操作 成员函数:初始化,输出,求表长,插入,删除,取元素,查找,替换,复制,清空
二、概要设计
1.数据结构
⑴逻辑结构(a1,a2,…,an)
⑵存储结构(附存储图)
typedef struct{/*动态顺序表*/
int last,max;/*尾元下标和预留表长*/
DataType *data;/*动态数组的基址*/
}SeqList;
last max data
data[0] data[1] …… data[last] …… data[max] a1 a2 …… alast+1 空闲
2.基本操作(声明函数)
SeqList *Init(){//初始化
void Out(SeqList *L);//输出
int Len(SeqList *L);//求表长
void Ins(SeqList *L,int i,DataType x);//插入
void Del(SeqList *L,int i);//删除
Datatype get(SeqList *L,int i);//取元素
int Location(SeqList *L,DataType x){//查找
void replace(SeqList *L,int i,DataType x);//替换
void copy(SeqList *L,SeqList S);//复制
void clear(SeqList *L);//清空
3.设计要点
⑴如图1所示,表t中第i个元素表为t.data[i-1]
⑵插入操作的要点如图2所示
…… data[i-1] data[i] …… data[last] …… ①移动: ↘ ↘ …… ↘
…… data[i] data[i] …… data[last] …… ②插入: ↑
图2
⑶删除操作的要点如图3所示
…… data[i] data[i+1] …… data[last] …… 移动: ↙ ↙ …… ↙
…… data[i-1] data[i] …… data[last] …… 图3
三、源程序(附测试数据)
#includeiostream
using namespace std;
#define DataType int/*假设表中元素为int型*/
#define INIT 3/*初始预留表长为3(测试后调整)*/
#define INC 2/*预留表长增量为2(测试后调整)*/
typedef struct{/*动态顺序表*/
int last,max;/*尾元下标和预留表长*/
DataType *data;/*动态数组的基址*/
}SeqList;
SeqList *Init(){/*初始化*/
SeqList * L = new SeqList;
L-data = new DataType [INIT];
for(int i=0;iINIT;i++){
L-data[i]= *(new DataType);
}
if(!L-data){cout内存不足!;return 0;}
L-max=INIT-1; L-last=-1; return L;/*成功,置空表*/
}/*调用格式为:SeqList *L=Init();*/
void Out(SeqList *L){/*输出*/
int i;cout(;
if(L-last-1)coutL-data[0];/*输出首元*/
for(i=1;i=L-last;i++)
cout,L-data[i];/*输出其它元素*/
cout);
}/*输出形式为:(a1,a2,…,an)*/
int len(SeqList *L){//求表长
return L-last+1;}
int Insert(SeqList *L,int i,DataType x){/*插入*/
int j;
if(i1||iL-last+2){cout位置错!; return 0;}
if(L-last+1==L-max){
L-max+=INC;
L-data=(DataT
文档评论(0)