数据结构课程设计.ppt
《数据结构课程设计.ppt》由会员分享,可在线阅读,更多相关《数据结构课程设计.ppt(56页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据结构课程设计数据结构课程设计实验一实验一 线性表线性表实验二实验二 堆栈与队列堆栈与队列实验三实验三 二叉树的遍历二叉树的遍历实验四实验四 图遍历的演示图遍历的演示实验五实验五 查找与排序查找与排序共10学时 实验一实验一 线性表线性表 实验目的实验目的 1了解顺序表的结构特点及有关概念,掌握顺序表建立、插入、删除的基本操作算法。2了解单链表的结构特点及有关概念,掌握单链表建立、插入、删除的基本操作算法。实验内容实验内容2单链表的实践。1顺序表的实践。顺序表的实践顺序表的实践1)建立4个元素的顺序表list=2,3,4,5,实现顺序表建立的基本操作。2)在list=2,3,4,5的元素4和
2、5之间插入一个元素9,实现顺序表插入的基本操作。3)在list=2,3,4,9,5中删除指定位置(i=3)上的元素9,实现顺序表的删除的基本操作。单链表的实践单链表的实践1)建立一个包括头结点和3个结点的(4,2,1)的单链表,实现单链表建立的基本操作。2)在已建好的单链表中的指定位置(x=2)插入一个结点3,实现单链表插入的基本操作。3)在一个包括头结点和4个结点的(4,2,3,1)的单链表的指定位置删除一个结点,实现单链表删除的基本操作。实验要点及说明实验要点及说明线性表(linearlist)是n(n0)个数据元素a1,a2,an组成的有限序列。其中n称为数据元素的个数或线性表的长度,当
3、n=0时称为空表,n0时称为非空表。通常将非空的线性表记为(a1,a2,,an),其中的数据元素ai(1in)是一个抽象的符号,ai是第i个数据元素,称i为数据元素ai在线性表中的位置。其具体含义在不同情况下是不同的,即它的数据类型可以根据具体情况而定,本书中,我们将它的类型设定为elemtype,表示某一种具体的已知数据类型。顺序表也称为线性表的顺序存储结构。其存储方式为:在内存中用一组地址连续的存储单元依次存储线性表的数据元素,但该连续存储空间的大小要大于或等于顺序表的长度。一般让线性表中第一个元素存放在连续存储空间第一个位置,第二个元素紧跟着第一个之后,其余依此类推。可用C语言描述为:#
4、defineLIST_SIZE100/LIST-SIZE表示线性表允许的最大长度Typedefintelemtype;TypedefstructelemtypedataLIST-SIZE+1;/表示线性表intlen;/len表示线性表的实际长度sqlist;若将前面线性表的顺序存储结构类型中的数组形式改为指针形式,则得到动态分配形式如下:structsqlistelemtype*data;intlen;线性表的链式存贮结构,也称为链表。其存贮方式是:在内存中利用存贮单元(可以不连续)来存放元素值及它在内存的地址,各个元素的存放顺序及位置都可以以任意顺序进行,原来相邻的元素存放到计算机内存后不
5、一定相邻,从一个元素找下一个元素必须通过地址(指针)才能实现。故不能像顺序表一样可随机访问。常用的链表有单链表、循环链表和双向链表、多重链表等。单链表是线性表的链式存贮结构中每个结点只有一个指针域的链表。单链表可用描述为:typedefstructLnodeelemtypedata;/用来存放结点本身信息元素类型structLnode*next;/指针类型,存放下一个元素地址Lnode;TypedefLnode*linklist;重点:重点:单链表的建立是非常重要的一个程序,和实验二中栈的建立与队列的建立有密切的关系。实验二实验二 栈与队列栈与队列实验目的实验目的1了解顺序栈的结构特点及有关概
6、念,掌握顺序栈建立及入栈的基本操作。2了解顺序栈共用的含义及优点,掌握顺序栈的基本操作。实验内容实验内容 进行顺序栈初始化及入栈、出栈,实现顺序栈建立及入栈、出栈的基本操作。特点:特点:根据栈的定义可知,最先放入栈中元素在栈底,最后放入的元素在栈顶,而删除元素刚好相反,最后放入的元素最先删除,最先放入的元素最后删除。也就是说,栈是一种后进先出(LastInFirstOut)的线性表,简称为LIFO表。栈的运算:栈的运算:1.初始化栈:Voidinitstack(s)将栈S置为一个空栈(不含任何元素)。2.进栈:VoidPush(&s,x)将元素X插入到栈S中,也称为“入栈”、“插入”、“压入”
7、。3.出栈:elemtypePop(&s)删除栈S中的栈顶元素,也称为”退栈”、“删除”、“弹出”。4.取栈顶元素:Elemtypegettop(s)取栈S中栈顶元素。5.判栈空:Intempty(s)判断栈S是否为空,若为空,返回值为1,否则返回值为0。6.置空栈:voidclearstack(&s)顺序栈的数据类型:顺序栈的数据类型:#definestacksize100Typedefintelemtype;typedefStructelemtypedatastacksize+1;inttop;/:指向栈顶位置的指针sqstack;运行界面:运行界面:队列的实现队列的实现 实验目的实验目的
8、 1了解顺序队列的结构特点及有关概念,掌握顺序队列建立及入队列的基本操作。2了解顺序队列共用的含义及优点,掌握顺序队列的基本操作。队列的定义队列的定义:队列是一种线性表。它只允许在表的一端进行插入,而在另一端删除元素。象日常生活中的排队,最早入队的最早离开。在队列中,允许插入的的一端叫队尾,允许删除的一端则称为队头。链队列存储表示:链队列存储表示:typedefstructQNodeQElemTypedata;structQNode*next;QNode,*QueuePtr;typedefstructQueuePtrfront;QueuePtrrear;LinkQueue;实验三实验三 二叉树
9、的遍历二叉树的遍历实验目的实验目的学习掌握二叉树各种遍历方法的基本操作算法。实验要点及说明实验要点及说明由于二叉树的定义是递归的,因而一棵非空二叉树可以看作是由根结点、左子树和右子树这三个基本部分组成的。如果能依次遍历这三个部分的信息,也就遍历了整个二叉树。由此得到的二叉树的遍历是按某种策略访问二叉树中的每一个结点且仅访问一次的过程。二叉树的遍历按访问根结点的先后次序不同分为前序、中序和后序三种。实验要求与步骤实验要求与步骤基本要求:采用递归算法实现前序、中序和后序遍历;实现提示:二叉树的遍历是指按照某种顺序访问二叉树中的每个结点,使每个结点被访问一次且只被访问一次;测试数据:此时,数据类型可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计
限制150内