今天总结循环单链表
什么是单循环链表?
单链表终端结点的指针域是指向空的,如果将其指向头结点,这样就形成了一个环,那么这种首尾相接的环就够成了单循环链表.
单链表中我们都是用头指针来表示的,但是在单循环链表里,用尾指针(指向最后一个节点)。为什么要这样,因为如果用头指针,那么当查找最后一个元素的时候,就要循环遍历,时间复杂度为O(n),如果用尾指针,时间复杂度为O(1),而因为是循环的,所以...
分类:
编程语言 时间:
2015-05-07 14:44:21
阅读次数:
192
题目:
输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针。
分析:
设置两个指针p1,p2。首先p1和p2都指向head。然后p2向前走k步,这样p1和p2之间就间隔k个节点,然后p1和p2同....
#include
#include
#include
using namespace std;
struc...
分类:
其他好文 时间:
2015-05-05 12:42:51
阅读次数:
115
对循环双链表实现下述功能:
void meau(); //菜单函数
void Initlist(List *list); //初始化
void show(List *list); //打印链表内容
bool Push_back(List *list,ElemType x); //尾插法
b...
分类:
其他好文 时间:
2015-05-05 08:52:16
阅读次数:
123
开始没看单向循环链表,感觉应该很简单,但实际上有几个概念不是很清楚:头结点,头指针,尾指针,尾节点???【个人理解】:头结点就是一个链表中实际存储数据的那个节点的前一个节点,这个节点不存储数据,只有一个指针指向第一个实际存储数据的节点(这个有效节点专业术语叫:首元素),这个节点就是头节点,指向头结....
分类:
其他好文 时间:
2015-05-03 15:55:21
阅读次数:
120
队列的链式实现1 队列的链式存储表示
队列的链式存储结构简称为链队列,它是限制在表头进行删除操作和表尾进行插入操作的单链表。
需要两类不同的结点:数据元素结点,队列的队首指针和队尾指针的结点
指针结点类型定义:typedef struct link_queue
{ QNode *front , *rear ;
}LinkQueue ;2 链队运算及指针变...
分类:
其他好文 时间:
2015-04-29 11:51:59
阅读次数:
144
//输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
//我的思路是2个指针往后面找,你想啊,如果是一个指针,肯定需要遍历2次,第一个遍历总共节点数,第二次才遍历最终结果
//这样的做法明显是不够好的,时间复杂度变成了2n,但是如果我们用2个指针,他们之间的距离差k个节点,有一个节点到达NULL
//时(尾部),另一个节点就是我们要求的节点可以返回得到结果.
#...
分类:
编程语言 时间:
2015-04-29 09:58:12
阅读次数:
230
广义表 的另一种 存储结构是 扩展线性链表存储表示,这种 存储结构的 根 节点 必 存在,并且 根节点的 表尾 为空,将 根节点的 表尾 放 在 表头 的 表尾 指针上。
这样 从 表头 一直 就可以 遍历 所有 同级 节点。
具体j结构 如下:
例如 下面的 广义表 ,用 扩展线性链表 表示为:
而 头尾 存储表示,是 把 表头 和 表尾 都放在 根节点 的 指针上。...
分类:
其他好文 时间:
2015-04-19 09:00:12
阅读次数:
263
/*
* 2015年4月17日14:04:56
* 目的:用链式存储来实现队列
* 这里我最开始想使用单链表来实现
* 大家来想一下啊,其实单链表实现不是特别好
* 因为虽然出队列的时间复杂度就是O(1),但是
* 入队列的时间复杂度却是O(n),因为每次都是从末尾进行插入
* 从末尾插入你首先就要找到当前指向尾指针的结点,由于链表是单向的
* 所以必须从front开始进行遍历才能...
分类:
其他好文 时间:
2015-04-17 18:18:01
阅读次数:
330
欢迎转载,转载请务必注明出处:http://blog.csdn.net/alading2009/article/details/45037001
第13题:输入一个单向链表,输出该链表中倒数第K个结点。链表的倒数第0个结点为链表的尾指针。
考虑如何在程序执行中保留K这个信息,这儿使用两个坐标,要让这两个坐标之间相距K个距离,于是当前一个坐标到达尾指针时,后一个坐标恰好与尾相距K个结点距离。...
分类:
其他好文 时间:
2015-04-14 10:04:06
阅读次数:
117
合并有序链表,链表结构已给出。要求返回的链表由原链表的节点构成,不再重新创建节点。【思路】数据结构入门算法。分别为两个链表设“滑块”,比较当前滑块数值的大小,小的就将返回链表的末尾指针指向它。注意:1.要为返回链表设立总是指向其尾部节点的标志,方便归入新节点。2.考虑原始链表为空的情况。【my co...
分类:
其他好文 时间:
2015-04-10 11:01:45
阅读次数:
177