数据结构各个实验指导书.doc

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE PAGE 1 《数据结构》实验指导书 南京工程学院通信工程学院 目 录 TOC \o 1-3 \h \z \u 前 言 1 实验一 线性表的基本操作 2 实验二 栈、队列的设计实现 4 实验三 串的模式匹配算法 6 实验四 二叉树的建立及遍历算法的实现 8 实验五 图的建立及遍历算法的实现 11 实验六 哈希表的设计与实现 14 实验七 排序算法实现 17 附录A 实验的步骤和规范 19 前 言 《数据结构》课程是信息工程、通信工程(计算机通信)专业的重要专业基础课程之一。 本书是为配合《数据结构》实验教学大纲而编写的实验指导书,其目的是使学生消化理论知识,加深对讲授内容的理解,尤其是一些算法的实现及其应用,培养学生独立编程和调试程序的能力,使学生对数据结构有更深刻的认识。 本实验指导书的内容都是基于C语言的,因此,要求学生对C语言和C++中的引用知识点要有一定的了解,建议使用VC++作为实验平台。 希望同学们在使用本实验指导书及进行实验的过程中,能够发现问题,并提出建议。 实验一 线性表的基本操作 一、实验目的: 1.熟悉Visual C++ 6.0 IDE开发环境。 2.掌握线性表的顺序与链式存储结构 3.掌握线性表的基本操作:初始化、插入、删除、查找算法。 二、实验内容: 1.定义线性表的链式存储结构 2.在线性表的链式存储结构上,编写函数实现链表的初始化,插入、删除,输出、销毁等算法。 三、实验要求: 1.数据结构定义正确,程序编码规范。 2.撰写实验报告,写出程序运行结果。 3.分析算法,写出本次实验总结。 四、实现提示: 1.数据结构定义 typedef int ElemType; typedef struct LNode { //结点类型 ElemType data; struct LNode *next; } LNode, *LinkList; 2.标准库函数malloc,free ( 相应的头文件 stdlib.h ) p=(LNode *)malloc(sizeof(LNode));该语句的功能是申请分配一个类型为LNode的结点的地址空间,并将首地址存入指针变量p 中。当结点不需要时可以用标准函数free(p)释放结点存储空间,这时p为空值(NULL)。 五、思考与提高 1. 编写函数求链表的长度。 2. 编写函数取得链表的第i个数据元素。 实验二 栈、队列的设计实现 一、实验目的 1.掌握栈的顺序表示和基本操作算法 2.掌握队列的链式表示和基本操作算法 二、实验内容: 1.定义顺序栈的数据结构 2.编写函数实现的栈的初始化、入栈、出栈、判断栈是否为空的算法,并应用与表达式的括号匹配检测。 3.定义队列的链式数据结构 4.编写函数实现链队列的入队列、出队列算法 三、实验要求: 1.数据结构定义正确,程序编码规范。 2.撰写实验报告,写出程序运行结果。 3.分析算法,写出本次实验总结。 四、实现提示 1.顺序栈的数据结构 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef int SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; 2.表达式的括号匹配算法提示 int match (char *expr) { SqStack S; int i,len; int temp; InitStack(S); len=strlen(expr); for(i=0;ilen;i++) { if( expr[i]==( ) Push(S,expr[i]); if( expr[i]==) ) if(!Pop(S,temp)) return 0; } if(EmptyStack(S)) return 1; else return 0; } 如: (3+4)*12+(5-6)/2 match (3+4)*12)+(5-6)/2) not match 五、思考与提高 1.用栈实现进制转换(十进制转换成二进制) 2.模拟服务台前的排队现象问题 实验三 串的模式匹配算法 一、实验目的: 1.掌握串的顺序存储结构 2.掌握串的基本算法 二、实验内容: 1.定义串的顺序存储结构。 2.编写函数实现串的初始化、分配、取子串算法 3.编写函数据实现串的模式匹配 三、实验要求: 1.数据结构定义正确,程序编码规范。 2.

文档评论(0)

180****2140 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档