链表是一种常用的数据结构,有单链表, 双向链表及其循环链表之分.
插入操作是链表的基本操作之一.但大部分人在初学时,多少会感到有些迷惑.
下面时本人的一些小经验.
1 后向插入和前向插入
假设当前节点为P.
后向插入是指在p节点后插入新节点.
前向插入是指在p节点后插入新节点.
对于单链表而言,只有后向插入.
2 基本规律
1) 先...
分类:
其他好文 时间:
2015-07-03 14:08:55
阅读次数:
130
在上一篇中,我们了解了单链表与双链表,本次将单链表中终端结点的指针端由空指针改为指向头结点,就使整个单链表形成一个环,这种头尾相接的单链表称为单循环链表,简称循环链表(circular linked list)。循环链表和单链表的主要差异就在于循环的判断条件上,原来是判断p.next是否为空,现在则...
分类:
其他好文 时间:
2015-07-03 01:41:02
阅读次数:
176
1 /* 2 约瑟环问题其实就是一个循环链表的问题 3 */ 4 #include 5 #include 6 using namespace std; 7 8 //动态规划的思想,有点类似解决主元素问题的思路 9 //巧妙的用0,1数组代替链表节点的删除 10 int...
分类:
其他好文 时间:
2015-07-01 21:52:54
阅读次数:
121
#include"stdio.h"
#include"stdlib.h"
#include"malloc.h"
typedef struct Node
{
int data;
struct Node * pNext;
}NODE,* PNODE;
PNODE create_list(void)
{
int i;
int len;
printf("请输入总人数:");
scanf("%d",&len);
PNODE pHead=(PNODE)malloc(sizeof(NODE)...
分类:
其他好文 时间:
2015-06-30 20:31:16
阅读次数:
138
在该双向循环链表中,表头结点first不存元素;当双向循环链表为空时:first->rlink=first->llink=first;以下代码实现了双向循环链表的插入、删除操作;在插入操作中,实现了头插法以及按序插入法。//main.cpp
//----------建立一个双向循环链表-------#include
using namespace std;
class dblis...
分类:
编程语言 时间:
2015-06-29 17:15:36
阅读次数:
210
一、链表简介 1 数据结构中,链表是最基础的。然而链表根据不同的需求分成的种类很多,单向或双向链表,循环或非循环链表,带头节点或者不带头节点的链表。 2本文实现——带头节点的单链表。 3 由于仅仅是学习链表的基本操作,所以在数据字段仅仅设置一个字段; 由于仅仅是学习基本操作,不涉及复杂的...
分类:
其他好文 时间:
2015-06-26 22:19:07
阅读次数:
119
双向链表的定义 双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。 注意:在实现的过程中,要分清前驱指针和后继指针,不要把他们当成一个指针。1 .....
分类:
其他好文 时间:
2015-06-26 14:57:09
阅读次数:
174
ArrayList 是List接口的实现类;底层的数据结构是数组,而LinkedList底层数据结构是双向循环链表。 所以在查询时ArrayList效率高,增删时LinkedList高。由于List中有索引,可以在指定位置插入。在iterator迭代器取元素时,在调用Arraylist中的iter....
分类:
其他好文 时间:
2015-06-19 15:03:01
阅读次数:
102
本文主要讲的是各种链表的基本操作,包括单向链表、单向循环链表以及双向链表。主要是关于链表的创建、删除、插入、打印数据。基本操作的实现是通过递归来实现的。...
分类:
其他好文 时间:
2015-06-18 11:36:00
阅读次数:
125