南京航空航天大学数据结构软件技术上机报告.docVIP

  • 74
  • 0
  • 约 16页
  • 2017-01-30 发布于重庆
  • 举报

南京航空航天大学数据结构软件技术上机报告.doc

南京航空航天大学数据结构软件技术上机报告

《计算机软件技术基础》 实验报告I—数据结构 班号: 0312401 学号: 031240117 姓名:尚林伟 Email: 235445892@ 签名: 尚林伟 南京航空航天大学 2014年11月5日 目录 实验一:顺序表、单链表的定义、创建、插入和删除操作,将数据元素显示出来。P1~5 实验二:二叉树的链式存储结构的数据结构定义、创建、先序/中序/后序遍历,并将结果序列输出。P5~6 实验三:图的邻接表和邻接矩阵数据结构的定义、创建;图的深度优先遍历、广度优先遍历。P6~12 实验总结:P13 一、实验要求 简述每一部分的对象、目的和要求; 画出算法(程序)的流程图; 说明程序的数据输入要求; 附源程序清单; 实验的:遇到的问题以及解决的办法、方法的优缺点;忌空、大话简述每一部分。 对源程序的功能块做适当注释。其他未尽事项按写报告的一般要求进行。 报告统一采用A4纸打印正文采用5号字体,倍行距或手写,左侧装订。 0312yyyxx_张三SeqList *init_SeqList()申请一个长度为new SeqList[sizeof(SeqList)]的空间,接下来调用顺序表创建函数esta_SeqList(SeqList*L)来进行对顺序表的创建,此函数要求用户输入数组,以-1为结束标志,接下来要求用户进行插入操作,当表满以及插入位置错误时都有提示,接下来就是删除,程序最后会把顺序表的元素用for循环输出出来 其中比较重要的插入和删除函数流程图如下:(使用流程图绘图软件绘制) 单链表:首先依然是定义一个单链表,接着调用CREATE_SL(SLNODE *h)函数用尾插法建立单链表,使用while循环,要求用户输入数据,以-1为结束标志,接着调用前插算法Insert_LinkList(SLNODE *h,int i,int x)函数进行插入操作,此函数对错误操作都有考虑,接下来就调用Del_LinkList(SLNODE *h,int i)函数进行删除操作,对错误操作也有处理。还有一个输出函数void Print_LinkList(SLNODE *h)用for循环对单链表的数据进行输出。 其中比较重要的插入函数流程图如下:(使用流程图绘图软件绘制) 操作演示: 顺序表*************************** 即将为您建立一个顺序表,请以-1结尾 请您输入一个整数 1 请您输入一个整数 2 请您输入一个整数 4 请您输入一个整数 -1 恭喜你,创建顺序表成功^_^ 输入需插入的数据: 3 输入需插入的结点: 3 插入成功^-^ 1 2 3 4 输入需删除的结点 1 删除成功^-^ 顺序表元素为: 2 3 4 单链表******************************* 欢迎使用单链表程序,感谢伟大的尚林伟同学给你带来了方便 请输入一组数,以-1为结尾 1 2 4 -1 单链表创建成功^-^ 输入需插入的数据: 3 输入需插入的结点: 3 插入成功^-^ 链表h数据如下 1 2 3 4 输入需删除的结点 4 删除成功^-^ 链表h数据如下 1 2 3 源程序代码: 顺序表******************************* //031240117尚林伟 #includeiostream.h #define SeqList struct listtype #define MaxSize 1000 SeqList //定义一个顺序表 { int data[MaxSize]; int last; }; SeqList *init_SeqList() //顺序表的初始化 { SeqList *L; L=new SeqList[sizeof(SeqList)]; L-last=-1; return L; } SeqList *esta_SeqList(SeqList*L) //建立一个顺序表 { int i,x; cout即将为您建立一个顺序表,请以-1结尾endl; for(i=0;x!=-1;i++) { cout请您输入一个整数endl; cinx; L-data[i]=x; L-last++; } L-last--; return L; } int Insert_SeqList(SeqList *L,int i,int x) //顺序表插入操作 { int

文档评论(0)

1亿VIP精品文档

相关文档