以下都是单链表的基本操作,我都写了一遍,链表时间长不写一定会陌生,留给自己以后忘了看一眼,顺便给想学习链表的同学一点提示吧
首先先写头文件head.h,这里都是我定义好的函数分别有
这里的所有例子都是有头结点的链表,都是单链表操作
1)头插发建表 2)尾插法建表 3)打印链表 4)对链表赋值的时候进行插入排序 5)将链表翻转 6)找到链表倒数第n个元素 7)将两个链表连在一起 8)使单链表变成环链表
9)判断链表是否有环 10)将现有的链表排序进行插入排序(与4)不同,4)是在建立链表的时候进行排序...
分类:
其他好文 时间:
2014-08-09 11:40:27
阅读次数:
399
双向链表的基本操作实现.复习数据结构.有C示例....
分类:
编程语言 时间:
2014-07-28 00:13:39
阅读次数:
283
1.单向循环链表
区分单向链表和单向循环链表:单向循环链表的尾指针指向头结点。
2.单向循环链表的基本操作
#include
#include
#define NULL 0
typedef struct node {
int data;
struct node *next;
}ElemSN;
ElemSN * creat_link(int ms); //创建一个单向循环链表
...
分类:
其他好文 时间:
2014-07-22 23:50:48
阅读次数:
264
1.带表头的单向链表
(1)不带表头的单向链表在实现插入和删除时必须区分头结点和其他节点的处理。
(2)使用带表头的单向链表的好处:不用考虑头结点的单独处理。
表头节点:数据域没有值,指针域指向单向链表中数据域含值的第一个结点。
2.代表头的单向链表的基本操作
#include
#include
#define NULL 0
typedef struct node {
int ...
分类:
其他好文 时间:
2014-07-20 10:31:16
阅读次数:
250
1.指针的联动
通过两个指针分别指向前驱和后继结点,并在单向链表上进行移动,当指针指向待处理的结点时,该结点的前驱也有指针指向。
2.设有一个无序单向链表,且数据域的值均不相同,使指针pmin指向最小值结点,并使指针prem指向最小值结点的前驱结点:
代码片段:
for(p = head; p; q = p, p = p->next)
{
if(pmin->data > p->...
分类:
其他好文 时间:
2014-07-18 21:26:41
阅读次数:
231
通过链表的一些题目,了解链表的基本操作实现,掌握递归算法的基本思路,掌握扎实的编程习惯。一、单链表基本操作1.1、单链表节点定义struct ListNode{ int value; ListNode *pNext;};1.2、在尾部插入节点void AddToTail(ListNode...
分类:
其他好文 时间:
2014-07-16 20:33:24
阅读次数:
150
代码注释比较详细:
#include
#include
using namespace std;
struct Node{
int data;
Node* next;
};
Node* head = NULL;
bool create() {
head = (Node*)malloc(sizeof(Node));
if(NULL == head) return false;...
分类:
其他好文 时间:
2014-07-08 21:05:05
阅读次数:
238
单链表的节点结构一般如下:struct Node{ int val; Node* next;};在处理单链表的基本操作要注意以下事项:1、记住头节点单链表的每个操作都要从头节点开始。如果函数内头节点发生了改变,比如在头节点之前插入节点,删除头节点,反转链表等,都需要更新头节点...
分类:
其他好文 时间:
2014-06-27 19:46:49
阅读次数:
368