数据结构报告要点.docVIP

  • 5
  • 0
  • 约1万字
  • 约 23页
  • 2016-05-19 发布于湖北
  • 举报
课程名称: 数据结构 班 级: 学 号: 姓 名: 指导教师: 实验一 一、试验目的: 掌握线性表的概念。 掌握线性表的顺序存储结构定义。 熟练运用c语言实现结构表的基础操作。 在掌握顺序表的基础上,能够用顺序表解决简单问题。 二、实验内容 (1)定义顺序表,并输入10个整数,作为顺序表中的元素。然后编写一个函数printlist输出表中的所有元素。 (2)用算法2-2统计顺序表中的元素数。 (3)输入一个位置值和一个元素值,用算法2-4将新元素插入指定的位置,然后输出顺序表中的所有元素,检查插入是否正确。 (4)输入一个位置值,用算法2-5将该位置的元素删除,然后用printlist输出表中的所有元素。 三、代码 /* 顺序表的基本操作 */ #include stdio.h /*存储结构*/ #define LISTSIZE 100 //宏定义 typedef int DataType; //定义类型 DataType 相当于 int typedef struct //SqList相当于 { DataType items[LISTSIZE]; int length; }SqList; /*算法2-1初始化顺序表*/ int InitList(SqList *L) { L-length=0; return 1; } /*算法2-2求顺序表长*/ int ListLength(SqList L) { return L.length; } /*算法2-3判断顺序表是否为空*/ int ListEmpty(SqList L) { if(L.length=0) return 1; else return 0; } /*算法2-4插入*/ int ListInsert(SqList *L,int pos,DataType item) { int i; if(L-length=LISTSIZE) { printf(顺序表已满,无法进行插入操作!); return 0; } if(pos=0 || posL-length+1) { printf(插入位置不合法,其取值范围应该是[1,length+1]); return 0; } for(i=L-length-1; i=pos-1; i--) L-items[i+1]=L-items[i]; L-items[pos-1]=item; L-length++; return 1; } /*算法2-5删除*/ int ListDelete(SqList *L,int pos,DataType *item) { int i; if(ListEmpty(*L)) { printf(顺序表为空表,无法进行删除操作!); return 0; } if(pos1 || posL-length) { printf(删除位置不合法,其取值范围应该是[1,length]); return 0; } *item=L-items[pos-1]; for(i=pos;iL-length;i++) L-items[i-1]=L-items[i]; L-length--; return 1; } /*算法2-6查找指定元素在顺序表中的位置*/ int Find(SqList L,DataType item) { int pos=0; if(ListEmpty(L)) { printf(顺序表为空表,无法进行查找操作!); return 0; } while(posL.length L.items[pos]!=item) pos++; if(posL.length) return pos+1; else return 0; } /*算法2-7获取顺序表中指定位置上的数据元素*/ int GetElem(SqList L,int pos,DataType *item) { if(ListEmpty(L)) return 0; if(pos=0 || posL.length) { printf(位置信息输入不合法,请重新输入); return 0; } *i

文档评论(0)

1亿VIP精品文档

相关文档