数据结构
文章平均质量分 84
huangjh2018
这个作者很懒,什么都没留下…
展开
-
数据结构——栈
1. 简介 栈(stack)是限定仅在表尾进行插入或删除操作的线性表。因此,对栈来说,表尾端有其特殊含义,称为栈顶(top),相应地,表头端称为栈底(bottom)。不含元素的空表称为空栈。 假设栈S=(a1, a2, ..., an),则称为a1为栈底元素,an为栈顶元素,栈的修改是按后进先出的原则进行的。因此,栈又称为后进先出(last in first out)的线性表。2.原创 2018-01-22 21:10:29 · 211 阅读 · 0 评论 -
数据结构——队列
1. 简介 和栈相反,队列(queue)是一种先进先出(first in first out,缩写为FIFO)的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和我们日常生活中的排队是一致的,最早进入队列的元素最早离开。在队列中,允许插入的一端叫做队尾(rear),允许删除的一端称为队头(front)。假设队列为q = (a1, a2, ..., an),那么a1就是队头元素,a原创 2018-01-23 20:47:55 · 260 阅读 · 0 评论 -
数据结构——双向链表
1. 简介之前讨论的单向链表中的结点只有一个指示之间后继的指针域,由此,从某个结点出发只能顺指针往后寻查其他结点。若要寻查结点的直接前驱,则需从表头指针出发。面对单向链表在这方面的不足,我们的解决方法很简单,只要在数据结构上附加一个域,使它包含指向前一个单元的指针即可。其开销是一个附加的链,它增加了空间的需求,同时也使得插入和删除的开销增加一倍,因为有更多的指针需要定位。另一方面,它简化了删除原创 2018-01-18 20:41:56 · 259 阅读 · 0 评论 -
数据结构——单向链表
1. 简介 链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域。相比较于普通的线性表(数组),链表有自己的优势和劣势:单个结点创建非常方便,普通的线性内存通常在创原创 2018-01-09 21:35:06 · 757 阅读 · 1 评论 -
数据结构——二叉搜索树
1. 简介 二叉搜索树中的关键字总是以满足二叉搜索树性质的方式来存储: 设x是二叉搜索树中的一个结点。如果y是x的左子树的一个结点,那么y.key = x.key。 在下图中,,树根的关键字为6,在其左树中有关键字2、5和5,它们均不大于6;而在其右子树有关键字7和8,它们均不小于6。并且这个性质对于图中的每个结点都成立。2. 遍历二叉树 所谓遍历是原创 2018-02-07 21:28:51 · 322 阅读 · 0 评论