指导书_实验三+数据结构(顺序表).docxVIP

  • 57
  • 0
  • 约3.16千字
  • 约 5页
  • 2017-12-31 发布于河南
  • 举报
指导书_实验三数据结构(顺序表)

实验三数据结构(顺序表的建立于操作)[实验目的]理解数据结构的顺序存储关系,掌握基本操作算法;[实验环境]TurboC或 VC6.0[实验步骤]按要求建立C源程序,观察并分析结果。说明:以下程序构造顺序表SeqList,并且定义了顺序表的常用操作,主函数依次调用这些函数,完成相应操作。源程序如下:#include stdio.h#include stdlib.h /****以下定义常量,****/#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define MAXSIZE 20 //顺序表最大长度/*以下定义类型的同义字*/typedefint Status; //凡遇到Status即为int类型typedefintElemType; //凡遇到ElemType即为int类型/*以下定义顺序表SeqList*/typedefstruct{ElemType data[MAXSIZE]; //data用于存放表结点int length; // 表长度}SeqList;/**顺序表初始化**/Status InitSeqList(SeqList *seqList) // *seqListL表示指向顺序表SeqList的指针{seqList-length=0; //置为空表return OK;}/*求顺序表的长度*/intGetSeqListLen(SeqList *seqList){ return seqList-length;}/*插入元素(在第n个元素之前的位置插入新元素)*/Status Insert(SeqList *seqList,intn,ElemType e){int k; //检查数组是否已满 if (seqList-length=MAXSIZE) return ERROR; //检查n的位置是否超出范围 if (n1||nseqList-length+1) return ERROR; //若插入数据位置不在表尾 if (n=seqList-length) { //将要插入位置之后元素依次向后移动一位 for (k=seqList-length-1;k=n-1;k--) {seqList-data[k+1]=seqList-data[k]; } } //将新元素插入到腾出的位置,并将表长加1seqList-data[n-1]=e;seqList-length++; return OK;}/*删除元素(删除第n个元素)*/Status Delete(SeqList *seqList,intn,ElemType *e){int k; //判断数组是否为空 if (seqList-length==0) return ERROR; //判断n的位置是否合法 if (n1||nseqList-length) return ERROR; *e=seqList-data[n-1]; //如果删除不是最后位置 if (nseqList-length) { //将删除位置后继元素依次前移 for (k=n;kseqList-length;k++) {seqList-data[k-1]=seqList-data[k]; } } //表长减1seqList-length--; return OK;}/*查找第n个元素*/intGetDataByIndex(SeqList *seqList,int n){ //检查位置是否超出范围 if (n1||nseqList-length) return ERROR; return seqList-data[n-1];}/*打印结果*/void Display(SeqList *seqList){inti;printf(\n********展示数据********\n); for (i=0;iseqList-length;i++) {printf(%d\n,seqList-data[i]); }printf(\n);}/*********以下是主程序********/void main(){ //声明变量SeqListseqList; //创建顺序表inti,j,k,m,elem; //声明变量printf(\n*****************初始化************************\n);i=InitSeqList(seq

文档评论(0)

1亿VIP精品文档

相关文档