C语言之单链表的插入、删除与查找

页面导航:首页 > 软件编程 > C 语言 > C语言之单链表的插入、删除与查找

C语言之单链表的插入、删除与查找

来源:互联网 作者:脚本宝典 时间:2015-07-28 20:02 【

单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。要实现对单链表中节点的插入、删除与查找的功能,就要先进行的单链表的初始化、创建和遍


单链表是一种链式存取的数据结构,用一组地址任意的存储单元存放线性表中的数据元素。要实现对单链表中节点的插入、删除与查找的功能,就要先进行的单链表的初始化、创建和遍历,进而实现各功能,以下是对单链表节点的插入、删除、查找功能的具体实现:

?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
typedef int ElemType;
 
/**
*链表通用类型
*ElemType 代表自定义的数据类型
*struct Node *next 代表 结构体指针(指向下一个结构体,完成链表动作)
*/
typedef struct Node{
 ElemType data;
 struct Node *next;
}Node;
 
/*==========单链表的初始化================*/
/*
*头结点指针数据域设置为空
*/
void initList(Node **pNode){
 *pNode=NULL;
}
/*===========单链表的创建=================*/
/*
*功能实现:通过用户不断输入数据,创建链表
*利用游标俩个指针(p1,p2),将申请下的数据块(存入用户输入数据),链接起来
*/
Node *create(Node *pHead){
 Node *p1;
 Node *p2;
 p1=p2=(Node *)malloc(sizeof(Node));     //申请内存空间
 memset(p1,0,sizeof(Node));       //存入数据域清空
 scanf("%d",&p1->data);
 p1->next=NULL;         
 while(p1->data>0){         //输入负数结束  
  if(pHead==NULL)
   pHead=p1;
  else
   p2->next=p1;
  p2=p1;
  p1=(Node *)malloc(sizeof(Node));