数据结构实验第一次湖北汽车工业学院精要.docVIP

  • 13
  • 0
  • 约7.26千字
  • 约 14页
  • 2017-04-21 发布于湖北
  • 举报

数据结构实验第一次湖北汽车工业学院精要.doc

数据结构实验第一次湖北汽车工业学院精要

HUBEI UNIVERSITY OF AUTOMOTIVE TECHNOLOGY 数据结构 实 验 报 告 实验项目线性表及链表的基本操作的编程实现学生姓名学生学号完成日期2014年10月20日指导教师马春江实验成绩评阅日期评阅教师 实验一 线性表及链表的基本操作的编程实现 【实验目的】 线性表基本操作的编程实现 要求: 线性表基本操作的编程实现(2学时,验证型),掌握线性表的建立、遍历、插入、删除等基本操作的编程实现,也可以进一步编程实现查找、逆序、排序等操作,存储结构可以在顺序结构或链表结构中任选,可以完成部分主要功能,也可以用菜单进行管理完成大部分功能。还鼓励学生利用基本操作进行一些更实际的应用型程序设计,进一步熟悉数据结构及算法的程序实现的基本方法。 链表基本操作的编程实现: 要求: 进一步掌握指针变量的用途和程序设计方法; 掌握线性表的结构特征,以及链式存储结构的特点及程序设计方法;掌握构造链表的基本方法;掌握链表的插入、删除和查找等算法的设计方法。 【实验内容】 把线性表的顺序存储和链表存储的数据插入、删除运算其中某项进行程序实现。建议实现键盘输入数据以实现程序的通用性。编写应用程序,实现可以对一个数组进行初始化,并用键盘进行输入;对数组进行遍历,然后输出数组里面的值;实现对数组数据的插入,里面涉及数据的移动,计数;对数组数据的修改,先提供所修改数据所在数组的位置;求表长的长度,返回数组的长度;对数组进行数据的反转,用for循环对数组两边进行数据的交换。 定义链式存储结构;编写建立链表的函数, 编写遍历链表的函数; 编写在链表中进行插入的函数; 编写在链表中进行删除元素的函数; 编写带菜单的测试主函数并上机运行;打印出运行结果,并结合程序运行结果进行分析。 【注意事项】 1.开发语言:使用C++。 2.可以自己增加其他功能。 【顺序表的实验分析、说明过程、部分代码】 对于数组数据的初始化时,要进行传参数,调用函数create(int number);传入参数number,它是记录数组储存多少个数据,然后用for循环从键盘输入数据读取到数组当中,返回success; returninfo create(int number) { count=number; printf(请依次输入数据(用空格隔开):\n); for(int i=0;icount;i++) { int date; cindate; dataarray[i]=date; } return success; } 对于数组的遍历显示而言,先对数组的元素数量是否为空进行判断,是空时返回underflow;不为空时,用for循环对数组进行遍历,输出数组的值,返回success; returninfo traverse(void) //遍历顺序表中的所有元素 { if(empty()) return underflow; //空表的处理 printf(顺序表中的全部数据为: \n); for(int i=0;icount;i++) { cout 第i+1数据为:dataarray[i]endl; } return success; } 插入一个元素,先对数组进行判断是否为空,如果为空返回underflow;然后对传入的位置进行判断,是否越界,如果越界则返回range_error;在对数据进行移动的时候要从后面进行移动把前面一个数据移动到后面,然后往前走,继续前面的步骤,到达所在位置数据移动完成以后,对所在位置进行数据的赋值,然后count加一,返回success。 returninfo insert(int position,int item) //插入一个元素 { if(empty()) return underflow; if(position=0||positioncount+1) return range_error; int i=position-1; for(int j=count;jposition;j--) { dataarray[j]=dataarray[j-1]; } dataarray[position-1]=item; count++; return success; } 对数组中的数据元素进行删除时,先对数组进行

文档评论(0)

1亿VIP精品文档

相关文档