所谓双链表就是除了头指针及尾指针以外,每个结点都有直接前驱和后继。双链表就是在单链表的基础上加了一个前驱指针。头指针无前驱但是有后继,尾指针有前驱但是无后继。"DList.h"#pragmaonce#include<iostream>usingnamespacestd;typedefintDataType;structNode{ Node(c..
分类:
编程语言 时间:
2016-03-17 02:08:48
阅读次数:
398
问题:一个字符串S(临时仅仅考虑小写字母),选择S中包括26种英文字母的最短子串。假设不包括则返回空字符 分析:双指针,动态维护一个区间。尾指针不断往后扫,当扫到有一个窗体包括了全部26种英文字母的字符串后。再收缩头指针。直到不能再收缩为止。最后记录全部可能的情况中窗体最小的。 代码演示样例: #i
题目大意:不同的人在不同的队伍里,插入链表的时候假设这个链表里有他的队友,就把它放到最后一个队友的最后。假设没有队友,就把它放到整个链表的最后面。出链表的时候把第一个人拿出来。思路分析:要模拟这个链表就要记录这整个链表中的队伍存在的情况。所以要再开一个链表的头指针和尾指针,在整个大的链表中再模拟小区...
分类:
其他好文 时间:
2016-01-18 22:50:54
阅读次数:
404
单链表的必要条件:头节点的head,以及尾指针指向null; 1头结点首先,不要被以下三个词组弄混了:链表头:数据内容为第一个元素的结点。头指针:指向头结点元素的指针。头结点:数据内容无效,其指针是头指针。一句话描述为:头指针是指向头结点的指针,头结点是指向链表头的结点。对于一个链表来说,头指针是一...
分类:
其他好文 时间:
2016-01-15 11:04:34
阅读次数:
160
内存管理类需要包括以下几个基本操作的正确性添加元素:判断管理的空间大小是否能够添加新元素,如不够,则使用allocator分配内存,并将旧数据移动到新内存,然后释放旧内存,并更新内存首指针、第一个可用内存指针、尾指针位置。对象拷贝:使用allocator的allocate分配内存,相关的uninit...
分类:
其他好文 时间:
2016-01-04 22:17:50
阅读次数:
254
逻辑: 集合 线性表 树 图物理: 顺序 链式typedef struct Node{ ElmetType data; struct Node *next;}Node;头指针 : 链表的起始尾指针 : 链表的结束判空 : 头指针为空头结点 不存任何节点 head->next == NULL尾部插.....
分类:
其他好文 时间:
2015-12-24 22:03:27
阅读次数:
212
如果不考虑奇数和奇数,偶数和偶数之间的相对位置不变。那么只需要两个指针分别指向数组的头和尾,依次比较。1. 如果头指针指向的数组位置为奇数,那么就判断尾指针指向的数组位置的奇偶性。如果是奇数,则头指针后移一个位置,如果是偶数,则尾指针前移一个位置。2. 如果头指针指向的数组位置为偶数,那么就判断尾指...
分类:
编程语言 时间:
2015-12-18 16:15:30
阅读次数:
255
数据结构,在一个动态数组中,对头与队尾分别指向这个动态数组,为了高效的使用数组空间,队列必须为循环队列,比如队尾指针指向数组边缘的那个元素时,再想队列插入元素时,如果队列没满,就可以利用对头下面的空间,即队尾指向数组下标加一对数组长度进行求余,实现循环队列,若有不足之处,请您与我联系qq:29952...
分类:
其他好文 时间:
2015-11-07 23:19:41
阅读次数:
306
程序设计思想 1.定义一个头指针。 2.键盘输入一个数值控制链表的长度。 3.利用输入的数值产生for循环结构输入结点位置的数据域,最后尾指针指向头节点,构成循环链表。 4.输入报数的上限值,从头节点开始循环,报数的上限停下的结点被删除。 5.从被删除的结点的下一个节点开始,以被删...
分类:
其他好文 时间:
2015-10-12 14:10:54
阅读次数:
197
本文中的双向链表,具有一个首指针h,但没有尾指针,不是循环链表。链表反转时,要做两件事情,一是将数据部分的pre指针和next指针交换值;二是将h指针指向反转后的头数据节点指针,并将新链表的尾数据节点指针的next(即原链表头数据指针的next)置空。 上代码: DLinkedNode.h #ifn...
分类:
其他好文 时间:
2015-10-10 00:20:38
阅读次数:
219