双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。 为了练习,我这次设置了哨兵结点,哨兵结点,我个人理解就是我们一般意义上的头结点(是链表的一个附加结点,数据域不存储任何信.....
分类:
其他好文 时间:
2015-01-24 21:14:44
阅读次数:
164
#include
#include
typedef struct LinkNode
{
struct LinkNode* next;
int data;
}LinkList;
/*说明:都带头结点的单链表*/
/*创建链表*/
void createLinkList(LinkList* head, int* a, int n)
{
int i = 0;
Link...
分类:
其他好文 时间:
2015-01-24 10:17:34
阅读次数:
256
#include
#include
typedef struct LinkNode
{
struct LinkNode* next;
int data;
}LinkList;
/*说明:都带头结点的单链表*/
/*创建链表*/
void createLinkList(LinkList* head, int* a, int n)
{
int i = 0;
Link...
分类:
其他好文 时间:
2015-01-24 10:16:27
阅读次数:
156
1.邻接表的简介:图的邻接矩阵存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。邻接表由表头结点和表结点两部分组成,其中图中每个顶点均对应一个存储在数组中的表头结点。如这个表头结点所对应的顶点存在相邻顶点,则把相邻顶点依次存放于表头结点所指向的单向链表中。如词条概念图所示,...
分类:
其他好文 时间:
2015-01-22 21:51:22
阅读次数:
280
头指针: 头指针是指链表指向第一个结点的指针,若链表有头结点,则是指向头结点的指针。 头指针具有标识作用,所以常用头指针冠以链表的名字。 无论链表是否为空,头指针均不为空。 头指针是链表的必要元素。头结点: 它是为了操作的统一和方便设立的,放在第一个元素的结点之前,其数据域一般无意义(但也...
分类:
其他好文 时间:
2015-01-21 22:01:27
阅读次数:
369
要求,给定一个单链表,要求对改单链表实现反转,即最后一个结点变成头结点单链表定义和建立: 1 typedef struct Node 2 { 3 int data; 4 Node * pNext; 5 }Node,*LinkList; 6 7 void CreateListHead...
分类:
其他好文 时间:
2015-01-20 17:28:15
阅读次数:
161
题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。
解题思路:
如果不要求只能遍历一次单链表,我们可以先遍历一次单链表,求出它的结点的总个数n(包括头结点),所以单链表的结点是从倒数第n-1个到倒数第0个,然后再遍历一次单链表,遍历时访问的第n-k-1个结点就是该单链表中倒数第k个结点。现在要求只能遍历...
分类:
编程语言 时间:
2015-01-17 18:10:44
阅读次数:
162
题目:删除带头结点的单链表中重复值的元素(即让每种值的元素只有一个)
解题思路:
用一个动态辅助存储数组,每次要向辅助数组中放入元素时,让辅助数组的长度加1,最长时与单链表一样长,设一个指针p,让它指向头结点,从单链表中第一个元素开始,将它的值放入辅助数组中,然后依次访问单链表后面的元素,用该元素的值与数组中所有已经被赋值的元素的值进行比较,如果不等于数组中任何元素的值,那么让p的...
分类:
编程语言 时间:
2015-01-17 11:20:26
阅读次数:
201
题目:删除带头结点的单链表L中的结点p,p不是最后一个结点,要求时间复杂度为O(1)。
解题思路:
如果不要求时间复杂度为O(1),我们可以找出p的前驱结点,然后很容易就删除p。
现在要求时间复杂度为O(1),因为p不是最后一个结点,知道结点p我们可以删除p的后继结点,那么我们可以把p的后继结点元素的值赋给p结点元素的值。
ADT定义:
//单链表的结点类
class LNo...
分类:
编程语言 时间:
2015-01-17 11:17:47
阅读次数:
285
题目:输入带头结点的单链表L,输出该单链表中倒数第k个结点。单链表的倒数第0个结点为该单链表的尾指针。要求只能遍历一次单链表。
解题思路:
如果不要求只能遍历一次单链表,我们可以先遍历一次单链表,求出它的结点的总个数n(包括头结点),所以单链表的结点是从倒数第n-1个到倒数第0个,然后再遍历一次单链表,遍历时访问的第n-k-1个结点就是该单链表中倒数第k个结点。现在要求只能遍历一次单链...
分类:
其他好文 时间:
2015-01-15 11:01:22
阅读次数:
121