我使用类模版来完毕循环链表实现队列的操作。首先定义一个结点类node用来保存结点信息,然后定义队列类Queue。接下来我们思考:要完毕队列的4个基本操作即 1.推断队列是否为空 2.在队列尾部push进数据 3.从队列头部取出数据 4.删除掉队列首部的元素 我们这个Queue类须要什么成员变量? 答 ...
分类:
其他好文 时间:
2017-06-19 14:22:27
阅读次数:
241
问题描写叙述 试编写在带头结点的单链表L中删除一个最小值结点的高效算法(如果最小值结点是唯一的) 算法思想 在链表中删除最小值的前提是必须找到最小值元素是哪个结点,因此设置指针p对全部结点进行遍历,使用指针min指向最小值结点。可是由于涉及到删除操作,明显在仅仅有指针min和指针p的条件下删除操作是 ...
分类:
其他好文 时间:
2017-06-16 10:06:46
阅读次数:
142
一、单链表简介 相对于以数组为代表的“顺序表”而言,单链表虽然存储密度比较低(因为数据域才是我们真正需要的,指针域只是用来索引,我们并不真正需要它),但是却具有灵活分配存储空间、方便数据元素的删除、方便元素插入等优点 单链表是线性表链式存储的一种,其储存不连续。单链表的数据结构中包含两个变量:数据和 ...
分类:
其他好文 时间:
2017-06-10 14:07:24
阅读次数:
228
内容:栈的两种存储结构 栈的特点: 在固定一端进行插入删除,在栈顶进行 链式存储结构(不带头结点): class StackNode { public: int data; StackNode *next; StackNode():next(NULL){} }; class StackLine { ...
分类:
其他好文 时间:
2017-05-30 16:07:58
阅读次数:
217
不带头结点代码传送门:http://www.cnblogs.com/SimonKly/p/6890287.html 可以从代码中看出,不带头结点的代码中插入节点的函数insert*中的参数是二级指针,因为头指针的指向可能会发生变化,需要用二级指针带回一级指针的地址。 而在带头结点的代码中在相同的插入 ...
分类:
编程语言 时间:
2017-05-22 17:45:55
阅读次数:
219
选择排序(如果递增排序) 每次选取从当前结点到末尾结点中最小的一个与当前结点交换,每一轮固定一个元素位置。 时间复杂度O(n^2),空间复杂度O(1)。以下的演示样例代码以带头结点的链表为存储结构: #include<stdio.h> #include<stdlib.h> #define Elemt ...
分类:
编程语言 时间:
2017-04-14 20:31:31
阅读次数:
155
将不带头结点的链表进行逆置,一般可以采取用多个节点指针的方式。这里采用递归的方法。 ...
分类:
其他好文 时间:
2017-04-01 18:58:12
阅读次数:
126
/*字符串采用带头结点的链表存储,设计算法函数void delstring(linkstring s, int i,int len)在字符串s中删除从第i个位置开始,长度为len的子串。*//**********************************//*文件名称:lab4_05.c */ ...
分类:
其他好文 时间:
2016-11-21 23:28:30
阅读次数:
806
双链表定义 双链表就是在单链表结点上增添了一个指针域,指向当前结点的前驱。这样就可以方便的由其后继来找到其前驱,而实现输出终端结点到开始结点的数据序列。 同样,双链表也分为带头结点的双链表和不带头结点的双链表,情况类似于单链表。带头结点的双链表 head->next 为null的时候链表为空。不带头 ...
分类:
其他好文 时间:
2016-09-05 19:14:43
阅读次数:
197