您的位置:首页 > 编程语言 > C语言/C++

C语言链表的三种插入方式详解

2019-04-30 20:41 11 查看
[code]#include<stdio.h>
#include<stdlib.h>

typedef int ElementType;
typedef struct Node{
ElementType data;
struct Node  *next;
}Node, *LinkList;  /*LinkList为结构指针类型*/

void insertHead(LinkList L, ElementType x);//头插法
void insertTail(LinkList  L, ElementType x);//尾插法
void insertList(LinkList L, int i, ElementType x);//任意位置插法
int main()
{
LinkList L = createList();
return 0;
}
void insertHead(LinkList L, ElementType x)
{
Node *p;
p = (LinkList)malloc(sizeof(Node));
p->data = x;
p->next = L->next;
L->next = p;
}
void insertTail(LinkList  L, ElementType x)
{
Node *pre,*p,*s;
pre = L;
p = L->next;

while(p!=NULL){
pre = p;
p = p->next;
}

s = (Node *)malloc(sizeof(Node));
s->data = x;

s->next = pre->next;
pre->next = s;
}
void insertList(LinkList L, int i, ElementType x)
{
Node *pre, *p, *s;
int k = 1;
pre = L;
p = L->next;

while(p!=NULL && k<i)
{
pre = p;
p = p->next;
k++;
}
s = (Node *)malloc(sizeof(Node));
s->data = x;

s->next = pre->next;
pre->next = s;

}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: