单链表的创立,删除,插入,输出,c语言
时间: 2024-03-23 21:13:46 浏览: 13
单链表是一种常见的数据结构,它由一系列结点组成,每个结点包含一个数据元素和一个指向下一个结点的指针。下面是单链表的创立、删除、插入、输出的C语言代码实现。
1. 单链表的创立
```c
#include <stdio.h>
#include <stdlib.h>
// 定义结点结构体
typedef struct node{
int data;
struct node *next;
}Node, *NodePtr;
// 创建单链表
NodePtr createList(int n){
NodePtr head, tail, p;
head = (NodePtr)malloc(sizeof(Node));
head->next = NULL;
tail = head;
for(int i=0; i<n; i++){
p = (NodePtr)malloc(sizeof(Node));
scanf("%d", &p->data);
tail->next = p;
tail = p;
}
tail->next = NULL;
return head;
}
```
2. 单链表的删除
```c
// 删除单链表中第i个结点
void deleteNode(NodePtr head, int i){
NodePtr p, q;
p = head;
for(int j=0; j<i-1; j++){
p = p->next;
}
q = p->next;
p->next = q->next;
free(q);
}
```
3. 单链表的插入
```c
// 在单链表中第i个结点后插入元素
void insertNode(NodePtr head, int i, int data){
NodePtr p, q;
p = head;
for(int j=0; j<i; j++){
p = p->next;
}
q = (NodePtr)malloc(sizeof(Node));
q->data = data;
q->next = p->next;
p->next = q;
}
```
4. 单链表的输出
```c
// 输出单链表元素
void printList(NodePtr head){
NodePtr p = head->next;
while(p){
printf("%d ", p->data);
p = p->next;
}
}
```
以上是单链表的基本操作,可以通过这些操作实现对单链表的增删改查。