C语言链表的建立与插入

C语言链表的建立与插入,第1张

#include

<stdio.h>

#include

<stdlib.h>

//使用结构体构建链表

struct

node{

int

data

struct

node

*next

}

void

main()

{

int

a,n=1

struct

node

*p,*head,*t

head=(struct

node

*)malloc(sizeof(struct

node))

//p=(struct

node

*)malloc(sizeof(struct

node))

//申请动态空间

p=head

//申请动态空间

t=(struct

node

*)malloc(sizeof(struct

node))

for(n<=5n++)

//输入1,3,5,7,9

{

p->data=2*n-1

p->next=(struct

node

*)malloc(sizeof(struct

node))

p=p->next

}

printf("原始链表如下:\n")

//输出原始链表

for(p=headp->next!=NULLp=p->next)

{

printf("%d

",p->data)

}

printf("\n请输入需要插入的数据\n")

//输入所要插入的新数据

scanf("%d",&a

)

for(p=headp->next!=NULL)

//按顺序插入相应位置

{

if(p->data

<=

a

&&

(p->next)->data

>=

a)

{

t->data

=a

t->next

=p->next

p->next=t

break

}

p=p->next

}

printf("插入新数据后的链表\n")

//输出插入新数据的链表

for(p=headp->next!=NULL)

{

printf("%d

",p->data)

p=p->next

}

printf("\n")

free(p)

free(head)

free(t)

}

主函数这里

Linklist List

printf("输入创建链表的长度:")

scanf("%d",&num)

CreateList_H(List,num) //创建链表

改为 

LNode List

printf("输入创建链表的长度:")

scanf("%d",&num)

CreateList_H(&List,num) //创建链表

函数内在堆上分配好内存,但是 没有传递到栈上

另外 你的变量名很迷人


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11462644.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存