<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 Listprintf("输入创建链表的长度:")
scanf("%d",&num)
CreateList_H(List,num) //创建链表
改为
LNode List
printf("输入创建链表的长度:")
scanf("%d",&num)
CreateList_H(&List,num) //创建链表
函数内在堆上分配好内存,但是 没有传递到栈上
另外 你的变量名很迷人
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)