单链表的整表创建和删除(四)
2015-08-18 21:11
204 查看
单链表的整表创建和删除
一、单链表的整表创建
创建单链表的过程是一个动态生成链表的过程,从“空表”的初始状态起,依次建立各元素结点并逐个插入链表。
单链表整表创建的算法思路如下:
1)声明一结点P 。2)初始化一空链表L 。3)建立一个带头结点的单链表,即让L的头结点的指针指向NULL。4)循环实现后继结点的赋值和操作。
单链表创建的方法有两种:头插法和尾插法。
1、头插法—把新加进的元素放在表头后的第一个位置。具体操作就是首先是新结点的next指向头结点之后,表头的next指向新结点。
头插法的程序如下:
头插法建立的链表,生成的链表中结点的次序和输入的顺序相反。
2、尾插法—新结点都插入到最后。
尾插法程序如下:
二、单链表的整表的删除
单链表整表删除的算法思路如下:
1)声明结点p和q。2)将第一个结点赋值给p,下一结点赋值给q。3)循环执行释放p和将q赋值给p的操作。
单链表整表删除的代码如下:
一、单链表的整表创建
创建单链表的过程是一个动态生成链表的过程,从“空表”的初始状态起,依次建立各元素结点并逐个插入链表。
单链表整表创建的算法思路如下:
1)声明一结点P 。2)初始化一空链表L 。3)建立一个带头结点的单链表,即让L的头结点的指针指向NULL。4)循环实现后继结点的赋值和操作。
单链表创建的方法有两种:头插法和尾插法。
1、头插法—把新加进的元素放在表头后的第一个位置。具体操作就是首先是新结点的next指向头结点之后,表头的next指向新结点。
头插法的程序如下:
typedef float ElemType; typedef struct Node { ElemType data;//数据域 struct Node *Next;//指针域 }Node; typedef struct Node* LinkList; void CreateLinkList(LinkList L,int n) { LinkList p; int i; srand(time(0)); L = (LinkList)malloc(sizeof(Node));//建立表头 L->Next = NULL; for(i = 0;i < n;i++) { p = (LinkList)malloc(sizeof(Node)); p->data = rand()%100 + 1; p->Next = L->Next; L->Next = p; } }
头插法建立的链表,生成的链表中结点的次序和输入的顺序相反。
2、尾插法—新结点都插入到最后。
尾插法程序如下:
typedef float ElemType; typedef struct Node { ElemType data;//数据域 struct Node *Next;//指针域 }Node; typedef struct Node* LinkList; void CreateLinkList(LinkList L,int n) { LinkList p,r; int i; srand(time(0)); L = (LinkList)malloc(sizeof(Node));//建立表头 r = L; for(i = 0;i < n;i++) { p = (LinkList)malloc(sizeof(Node)); p->data = rand()%100 + 1; r->Next = p; r = p; } r->Next = NULL; }
二、单链表的整表的删除
单链表整表删除的算法思路如下:
1)声明结点p和q。2)将第一个结点赋值给p,下一结点赋值给q。3)循环执行释放p和将q赋值给p的操作。
单链表整表删除的代码如下:
#define bingo 1 #define error 0 typedef float ElemType; typedef struct Node { ElemType data;//数据域 struct Node *Next;//指针域 }Node; typedef struct Node* LinkList; int clearList(LinkList L) { LinkList p,q; p = L->Next;//第一个结点 while(p) { q = p->Next; free(p); p = q; } L->Next = NULL; return bingo; }
相关文章推荐
- uva 1175 Ladies' Choice (稳定婚姻问题)
- 差分约束系统详解
- Eddy's digital Roots HDU杭电1163 【一个比较实用的定理】
- 如何有效地记忆与学习
- shell 两个rpm包做差分
- 精品软件 推荐 Office 文档专用压缩工具 - NXPowerLite 6.0.5 中文便携版
- 精品软件 推荐 Office 文档专用压缩工具 - NXPowerLite 6.0.5 中文便携版
- HTTP协议总结
- python C语言文件IO读取树莓派CPU、GPU温度
- Activity跳转Flag详解
- Activity跳转Flag详解
- Activity跳转Flag详解
- JS之reduce
- DAO的叫話
- 华为OJ(字符串分隔)
- 系统性能调优
- HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)
- Poj 1061青蛙的约会 扩展欧几里德
- 【分享】纯爱调教神作 萝莉调教计划NaturalAnotherOneNatural Another One+Natural Another One 2nd
- MyBatis 基础总结