循环队列进队与出队算法

循环队列进队与出队算法

队列是插入位置和删除位置受限制的线性表,它只能在一端进行插入,而另一端进行删除元素,其只允许插入的一端称为队尾,只允许删除的一端称为队首。 由于队列中的元素在插入与删除时,两端的都要变化,所以需要两个指针,一个是front指向队首元素,另一个是rear指向队尾的下一个地址。有的课本上是front指针指向前一个地……

  • c/c++
  • 2017-10-22 13:32:06
  • 6,303 次阅读

链式栈的插入与删除算法

链式栈的插入与删除算法

链式栈在设计时要注意的问题是判断栈是否为空,链栈不存在栈满的情况(假定内存无限大的情况不存在)。现在要求设计一个用不带头结点的单链表存储栈,将一个新结点插入到栈顶中,然后将其删除的算法。具体算法内容如下: ①链式栈插入(push)参考图: ②链式栈插入(push)代码: void push(LNode *&lst,int x) { LNode *p;……

  • c/c++
  • 2017-10-21 14:37:34
  • 3,140 次阅读

顺序栈的进栈与出栈操作

顺序栈的进栈与出栈操作

栈是一种线性的逻辑结构,是一种稍加限制的只能在一端进行插入或删除操作的线性表。栈由栈顶和栈底组成,其栈顶进行插入和删除操作。 栈具有后进先出的特点,比如在生活中,我们用浏览器上网时一连窜点击了好几个链接,这个时候想回到前一页,点击后退按钮就能实现了,这就运用了栈的特点。 栈按存储结构(物理结构)分为……

  • c/c++
  • 2017-10-20 15:32:32
  • 6,192 次阅读

单链表元素结点插入的重要环节

单链表元素结点插入的重要环节

单链表结点的插入过程,可以理解为元素结点指针的链接过程,即改变结点指针域的地址而改变指针指向。虽然单链表结点整个插入过程很简单,但重点是体会结点链接思想,从而感觉到学习单链表也能找到很多的乐趣。 单链表结点插入图解如下所示: 上图简单概括为:将p指针当前所指结点指针域中的地址赋值给s指针所指结点指针……

  • c/c++
  • 2017-10-19 14:48:16
  • 2,750 次阅读

头插法建立带头结点的单链表

头插法建立带头结点的单链表

单链表的删除和插入操作是线性表中比较重要一部分,而这些操作又是线性表中的难点,同时也是考试的重点。对于初学者来说,在看一些算法描述时往往读起来很费劲,为此我们可以做一些图解,方便加深理解。下面是头插法建立带头结点单链表的图解及算法。 ①头插法单链表图解如下: ②头插法单链表算法如下: void insertFront……

  • c/c++
  • 2017-10-17 21:30:05
  • 5,198 次阅读

堆排序步骤+算法

堆排序步骤+算法

堆可以看作一棵完全二叉树,利用一维数组将数据元素按照完全二叉树的形式,从上到下,从左到右,依次存放。若任何一个双亲结点值都比其左右孩子的值大,则称为大顶堆;反之称为小顶推。 堆排序基本思想是:将待排序的序列构造成一个大顶堆(或小顶堆)。此时,整个序列的最大值就是堆顶的根结点。然后将其与堆数组的末尾……

  • c/c++
  • 2017-10-15 19:44:36
  • 3,094 次阅读

交换单链表结点的算法

交换单链表结点的算法

单链表交换结点的操作是比较常见的算法之一,掌握这类比较难点的算法对学习数据结构的其它链表算法的操作或多或少有帮助。下面是单链表中交换指针p所指结点和其后继结点在链表中位置的算法,同时做了图片为了更方便理解算法的执行过程。单链表交换结点C++算法如下: template <class T> int LinkList : :Exchange (……

  • c/c++
  • 2017-10-09 20:21:08
  • 3,232 次阅读

单链表的逆转算法

单链表的逆转算法

单链表的逆转是一个很经典的算法,在考虑这样相对比较难点的算法时,最好的办法是把单链表的图画出来,这样对照着程序理解起来比较容易点,下面是用C++程序语言写的单链表逆转的算法,要求是在原有的单链表上进行逆转,不允许重新构造一个链表,算法如下所示: template <class T> void LinkList : :Inverse (Node……

  • c/c++
  • 2017-10-08 19:53:52
  • 2,932 次阅读

数据结构内部排序算法

数据结构内部排序算法

在学习内部排序算法时手工求每种排序的算法时,能够加深对排序算法的了解,并能发现一些算法的排序规律。这样在理解内部排序算法的程序时,能够得到很大的帮助。下面对52,10,13,14,12,80,16,26,88,66十个数据采取比较常用的内部排序算法进行排序: ①直接插入排序: 初始值: 52,10,13,14,12,80,16,26,88……

  • c/c++
  • 2017-09-22 16:47:43
  • 2,414 次阅读

带头结点的单链表归并操作

带头结点的单链表归并操作

单链表是链表中比较重要的形式之一,它不仅支持动态分配,而且插入与删除元素不需要移动元素的位置,只需改变指针的指示的位置就能完成结点的插入与删除操作。而单链表的归并操作相对比较难一点点,首先是指针比较多,比较搞脑汁,其次是没有图例或者是动画演示,真的很难搞清楚程序是怎么执行的。下面是C程序写的单链表……

  • c/c++
  • 2017-09-18 15:20:45
  • 2,770 次阅读