数据结构和算法(初级)
文章平均质量分 65
数据结构
编程侯
这个作者很懒,什么都没留下…
展开
-
数据结构算法代码实现——栈和队列(二)
队列的定义和栈相反,队列(queue)是一种先进先出(FIFO)的线性表。它只允许在表的一端经行插入,而在另一端删除删除。我们把允许进行删除的一端称为队头,允许插入的一端称为队尾。在插入新元素到队尾的操作简称进队或入队,从队列中删除队头元素的操作简称出队或离队,若队列中无数据元素则称为空队列。队列的表示与实现和线性表类似,队列也可以有两种存储表示。1,队列的链式表示与实现。原创 2015-06-15 21:36:19 · 1079 阅读 · 0 评论 -
数据结构算法代码实现——线性表的定义(一)
线性表的定义 线性表:是最常用且最简单的一种数据结构,它是一种线性数据结构,是由类型相同的n个(n≥0)数据元素组成的有序序列。 线性表的特点:有且只有一个被称作“第一个”的数据元素,有且只有一个被称为“最后一个”的数据元素。除第一个数据元素之外,其他元素都只有一个前驱,除最后一个数据元素之外,其他元素都只有一个后继。简单的说,其特点是数据元素之间存在”一一对应 (序偶关系)“的原创 2015-06-08 10:40:07 · 2804 阅读 · 0 评论 -
数据结构算法代码实现——树与二叉树(一)
树的基本概念树状结构是一种典型的非线性数据结构。直观看来树是以分支关系定义的层次结构(一对多)。 1,树的定义树的定义:树是n(n>=0)个结点的有限集。(1)当n=0时,称为空树。(2)当n=1时,有且仅有一个称为根的结点。(3)当n>1时,有若干个互不相交的子树。通过上述的定义,可知树是一种递归的数据结构,即树的定义再次用到了自身的概念(也就是子树的定义)。2,树的表原创 2015-06-28 10:50:29 · 1508 阅读 · 0 评论 -
数据结构算法代码实现——线性表的顺序表示与实现(二)
线性表的顺序表示线性表的顺序表示:指的是一组地址连续的存储单元依次存储线性表的数据元素。顺序表的存储方法与特点在日常生活中,我们通常更喜欢使用连续的存储空间来存放各种物品。 好,举个例子:假设宿舍内的衣橱用编号1-6,宿舍内成员按年龄分出老大-老六,老大使用编号为1的衣橱。依次类推。如果将宿舍成员看做是逻辑顺序,每个衣橱看做是物理顺序,则逻辑顺序和物理顺序是一致的。原创 2015-05-28 20:28:49 · 11194 阅读 · 2 评论 -
数据结构算法代码实现——静态单链表(四)
线性表的静态单链表存储结构//-------线性表的静态单链表存储结构-------typedef struct{ ElemType data; int cur;}component,SLinkList[MAXSIZE];什么是静态链表? 对于线性链表,也可用一维数组来进行描述。这种描述方法便于在没有指针类型的高级程序设计语言中使用链表结构。在如上描述原创 2015-06-05 14:02:32 · 987 阅读 · 0 评论 -
数据结构算法代码实现——栈和队列(一)
栈和队列栈和队列是一种特殊的线性表。从数据结构角度看:栈和队列也是线性表,其特点性在于栈和队列的基本操作是线性表操作的子集。它们是操作受限的线性表。从数据类型角度看:它们是和线性表不相同的两类重要的抽象数据类型。栈的定义栈(Stack)是限定仅在表尾进行插入或删除操作的线性表。允许经行插入删除操作的表尾被称为栈顶,相应的表头被称为栈底。向栈中插入一个元素称为入栈(压栈),从栈中删原创 2015-06-11 18:14:11 · 4120 阅读 · 0 评论 -
数据结构算法代码实现——循环链表、双向链表(五)
循环链表 循环链表是一种特殊的链表,其特点是,表中最后一个结点的指针域指向头结点,整个链表的首位结点相连形成一个环。因此,从循环链表中的任何结点出发都可以找到其他结点 循环链表的操作运算和单链表的我操作基本相同原创 2015-06-09 22:49:36 · 1599 阅读 · 0 评论 -
数据结构算法代码实现——线性表的链式表示与实现(单链表)(三 )
线性表的链式表示 使用一组任意的存储单元存储线性表的数据元素(这些存储单元可以是连续也可以是不连续的)。 常见的链式表:单链表、静态链表、循环链表、双向链表。链表的存储方式和特点我们修改一下上一篇文章的例子:假如现在是新生入校,按照新生的先来后到编号1-6,先到的同学可以随意选择床铺,但是需要记住下一位同学的床铺号(1舍友记住2舍友床铺号,2舍友记住3舍友床铺号,依次类推)。此时无形原创 2015-06-02 08:03:04 · 9936 阅读 · 0 评论