网站大量收购独家精品文档,联系QQ:2885784924

C++中怎样建立一个顺序表.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++中如何建立一个顺序表准备数据 初始化顺序表 计算线性表的长度 插入结点 追加结点 删除结点 查找结点 按照序号查找结点 按照关键字查找结点 显示所有的结点 顺序表操作完整示例 准备数据 [cpp] view plaincopyprint? #define MAXLEN 100 //定义顺序表的最大长度 struct DATA { char key[10]; //结点的关键字 char name[20]; int age; }; struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保存顺序表的结构数组 int ListLen; //顺序表已存结点的数量 }; #define MAXLEN 100 //定义顺序表的最大长度 struct DATA { char key[10]; //结点的关键字 char name[20]; int age; }; struct SLType //定义顺序表结构 { DATA ListData[MAXLEN+1];//保存顺序表的结构数组 int ListLen; //顺序表已存结点的数量 }; 定义了顺序表的最大长度MAXLEN、顺序表数据元素的类型DATA以及顺序表的数据结构SLType。 在数据结构SLType中,Listen为顺序表已存结点的数量,也就是当前顺序表的长度,ListData是一个结构数组,用来存放各个数据结点。 我们认为该顺序表是一个班级学生的记录。其中,key为学号,name为学生的名称,age为年龄。 因为数组都是从下标0开始的,为了使用方便,我们从下标1开始记录数据结点,下标0的位置不可用。 初始化顺序表 在使用顺序表之前,首先创建一个空的顺序表,也就是初始化顺序表。这里,在程序中只需设置顺序表的结点数量ListLen为0即可。这样,后面需要添加的数据元素将从顺序表的第一个位置存储。 示例代码: [cpp] view plaincopyprint? void SLInit(SLType * SL) //初始化顺序表 { SL-Listlen=0; } void SLInit(SLType * SL) //初始化顺序表 { SL-Listlen=0; } 计算线性表的长度 计算线性表的长度也就是计算线性表中结点的个数,由于我们在SLType中定义了ListLen来表示结点的数量,所以我们只需要获得这个变量的值即可。 [cpp] view plaincopyprint? int SLLenght(SLType *SL) { return(SL-ListLen); //返回顺序表的元素数量 } int SLLenght(SLType *SL) { return(SL-ListLen); //返回顺序表的元素数量 } 插入结点 插入节点就是在线性表L的第i个位置上插入一个新的结点,使其后的结点编号依次加1。 这时,插入一个新节点之后,线性表L的长度将变为n+1。插入结点操作的难点在于随后的每个结点数据都要向后移动,计算机比较大,示例代码如下: [cpp] view plaincopyprint? int SLInsert(SLType *SL,int n,DATA data) { int i; if(SL-ListLen=MAXLEN) //顺序表结点数量已超过最大数量 { cout顺序表已满,不能插入结点!endl; return 0; //返回0表示插入不成功 } if(n1||nSL-ListLen) //插入结点的序号不合法 { cout插入序号错误!endl; return 0; } for(i=SL-ListLen;i=n;i--) //将顺序表中的数据向后移动 { SL-ListData[i+1]=SL-ListData[i]; } SL-ListData[n]=data; SL-ListLen++; return 1; } int SLInsert(SLType *SL,int n,DATA data) { int i; if(SL-ListLen=MAXLEN) //顺序表结点数量已超过最大数量 { cout顺序表已满,不能插入结点!endl; return 0; //返回0表示插入不成功 } if(n1||nSL-ListLen) //插入结点的序号不合法 { cout插入序号错误!endl; return 0; } for(i=SL-ListLen;i=n;i--) //将顺序表中的数据向后移动 { SL-ListData[i+1]=SL-Li

文档评论(0)

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

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

1亿VIP精品文档

相关文档