帮我编写一个用C语言编写的单链表的建立,和输入输出操作,谢谢各位

2024-11-23 12:59:07
推荐回答(2个)
回答1:

linklist
*creatlistr(){
//用尾结点插入法建立一个单链表
linklist
*l,*p,*rear;
//定义linklist型指针变量分别用于存放头结点、待插入的结点、尾结点
int
x;
l=(linklist*)malloc(sizeof(linklist));//为待建立的链表申请地址空间
l->next=null;//建立空的单循环链表
rear=l;
printf("请输出一组数字,并以0为结束符:");
scanf("%d",&x);
while(x!=0){
p=(linklist*)malloc(sizeof(linklist));//尾插入法建立循环链表
p->data=x;
rear->next=p;
rear=p;
scanf("%d",&x);
}
rear->next=null;
printf("输出删除指定结点后的单循环链表为:");
while
(p->next!=null){
printf("%d
",p->data);
//输出时用空格作为数据之间的间隔
p=p->next;
return
(l);
}

回答2:

给你个简单的:
//单链表结点类型定义
struct
lnode
{
int
data;
struct
lnode
*next;
};
typedef
struct
lnode
LNode;
//单链表的建立,创建单链表的时候其实就是实现了单链表的输入
LNode
*LinkList_Creat(int
n)
{
LNode
*head,*p,*tail;
int
i,x;
head=tail=(LNode
*)malloc(sizeof(LNode));
printf("please
input
%d
datas:\n",n);
for(i=1;i<=n;i++)
{scanf("%d",&x);
p=(LNode
*)malloc(sizeof(LNode));
p->data=x;
tail->next=p;
tail=p;
}
tail->next=NULL;
return
head;
}
//输出
void
output(LNode
*head)
{
LNode
*p=head->next;/*让p指向第一个元素结点*/
while(p!=NULL)
{
printf(“%d
”,p->data);
p=p->next;
/*让p指向下一结点*/
}
printf("\n");
}