永发信息网

用C语言编程(创建一个单向链表)

答案:2  悬赏:80  手机版
解决时间 2021-02-08 20:34
  • 提问者网友:萌卜娃娃
  • 2021-02-08 14:37
设计程序创建一个单向链表,并输出链表中数据。要求:从键盘输入数据元素个数和值,并在此基础上实现单向链表插入、删除元素的功能
最佳答案
  • 五星知识达人网友:刀戟声无边
  • 2021-02-08 16:03
*creat a list*/
#include "stdlib.h"
#include "stdio.h"
struct list
{ int data;
struct list *next;
};
typedef struct list node;
typedef node *link;
void main()
{ link ptr,head;
int num,i;
ptr=(link)malloc(sizeof(node));
ptr=head;
printf("please input 5 numbers==>\n");
for(i=0;i<=4;i++)
{
scanf("%d",&num);
ptr->data=num;
ptr->next=(link)malloc(sizeof(node));
if(i==4) ptr->next=NULL;
else ptr=ptr->next;
}
ptr=head;
while(ptr!=NULL)
{ printf("The value is ==>%d\n",ptr->data);
ptr=ptr->next;
}
}

上面是一个简单的创建链表的C程序。所谓链表形象的讲就是一个数据块里面存有数据,并且存有下一个数据的指针,这样一个指一个形成一个数据链。这个数据链可以被操作,例如插入数据,删除数据,等。至于指令,首先定义一个结构体,它存有数据和指向下一个数据块的指针。然后分配空间。注意最后一个为NULL,当然你也可以指向开头一个数据块形成一个循环链表
全部回答
  • 1楼网友:逐風
  • 2021-02-08 17:41
可以用头插法或尾插法 (下面用尾插法) 思想为:让你输入一串字符串,为每个字符创建一个节点,添加到链表的后面.直到输入的字符为@为止. #include<stdio.h> #include<malloc.h> typedefchardatatype; typedefstructnode { datatypedata; structnode*next; }linklist; linklist*p,*q,*head; main() { charc; head=(linklist*)malloc(sizeof(linklist)); head->next=null; p=head; c=getchar(); while(c!='@') { q=(linklist*)malloc(sizeof(linklist)); q->data=c; q->next=null; p->next=q; p=p->next; c=getchar(); } } 可以在main()最后加上 for(p=head->next;p!=null;p=p->next) { printf("%5c",p->data); } 来测试结果,本人已经tc2.0下面测试通过.
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯