/*双向循环链表*/
#include "declaration.h"
typedef struct DulNode
{
int data;
struct DulNode *next,*prior;
}DulNode,*DulLinkList;
Status InitList_DUL(DulLinkList &L)//初始化一个带头结点的双向循环链表,ok
{
L=(DulNode...
分类:
其他好文 时间:
2014-12-25 20:37:04
阅读次数:
221
STL中实现的hash_map和MFC中实现的CMap数据结构均为hash。普通的hash在遍历时,效率会比较慢。hash_map与CMap的遍历均顺序访问每一个桶,因此会在空桶上浪费一定的时间。
1. 改进的hash
哈希结点结构如图1-1(a)所示,其中data为存储的数据,next为指向下一个哈希结点的指针。哈希头结点如图1-1(b)所示,其中preBucket为前一个有数据的桶号,ne...
分类:
其他好文 时间:
2014-12-25 16:28:29
阅读次数:
157
概述 还是相对简单,不过要记得释放不用的头结点即可.代码为: 1 //将lList2头结点连接在lList1尾结点的后面. 2 void 3 combine(linklist lList1, linklist lList2) { 4 Linknode *lst01Tail = lList1...
分类:
其他好文 时间:
2014-12-19 11:35:54
阅读次数:
164
单链表的整表创建、删除单链表的整表创建思路:-声明一个结点p和计数器变量i-初始化一个空链表L-让L的头结点的指针指向NULL,即建立一个带头结点的单链表;-循环实现赋值和插入头插法建表从一个空表开始,生成新结点,读取数据存放到新节点的数据域中,然后将新节点插入到当前..
分类:
编程语言 时间:
2014-12-17 19:05:10
阅读次数:
231
如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。
bool IsCycleList(ListNode* pHead)
{
if(pHead== NULL)
return false;
if (pHead->m_pNext == NULL)
{
return false;
}
ListNode* pFastNod...
分类:
编程语言 时间:
2014-12-16 17:13:12
阅读次数:
154
如果有两个头结点指针,一个走的快,一个走的慢,那么若干步以后,快的指针总会超过慢的指针一圈。bool IsCycleList(ListNode* pHead){ if(pHead== NULL) return false; if (pHead->m_pNext == NULL) { retur...
分类:
编程语言 时间:
2014-12-16 13:16:36
阅读次数:
143
题目:给定一个头结点,倒叙输出一个链表
解法1:先将链表反转,在遍历输出
解法2:不修改链表自身的结构,动态申请一段空间,申请一个指针数组,数组内存放的指针指向链表的每个值,再遍历数组输出:
void PrintListBack(ListNode* head)
{
int n = GetLength(head);
ListNode** p = new ListNode*[n+...
分类:
编程语言 时间:
2014-12-12 16:48:03
阅读次数:
203
题目:定义一个函数,输入一个链表的头结点,反转该链表并输出反转后链表的头结点,链表节点定义为:
struct ListNode
{
int m_nValue;
ListNode* m_pNext;
};
算法思路:
链表 1-->2-->3-->4-->5
建立一个 pPrev节点,而且为空节点; pPrev = NULL;再建立一个节点pNode = ...
分类:
编程语言 时间:
2014-12-12 15:00:59
阅读次数:
163
原文: 一步一步写算法(之排序二叉树插入) 【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 二叉树的节点插入比较简单。一般来说,二叉树的插入主要分为以下两个步骤: 1) 对当前的参数进行判断,因为需要考虑到头结点,所以我们使用了指针的指针作为函...
分类:
编程语言 时间:
2014-12-11 10:17:36
阅读次数:
192
数据结构实验之链表三:链表的逆置
Time Limit: 1000MS Memory limit: 65536K
题目描述
输入多个整数,以-1作为结束标志,顺序建立一个带头结点的单链表,之后对该单链表的数据进行逆置,并输出逆置后的单链表数据。
输入
输入多个整数,以-1作为结束标志。
输出
输出逆置后的单链表数据。
示例输入
12 56 4 6 55 1...
分类:
其他好文 时间:
2014-12-11 06:49:08
阅读次数:
203