C语言中编写两个函数我是新手,最近学到单向链表了,有一个疑惑.比如,假设编写函数creat是建立一个带有头结点的链表,编写函数take是顺序输出单向链表各结点数据的内容.函数creatstruct list{char
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/14 20:29:54
![C语言中编写两个函数我是新手,最近学到单向链表了,有一个疑惑.比如,假设编写函数creat是建立一个带有头结点的链表,编写函数take是顺序输出单向链表各结点数据的内容.函数creatstruct list{char](/uploads/image/z/5274260-44-0.jpg?t=C%E8%AF%AD%E8%A8%80%E4%B8%AD%E7%BC%96%E5%86%99%E4%B8%A4%E4%B8%AA%E5%87%BD%E6%95%B0%E6%88%91%E6%98%AF%E6%96%B0%E6%89%8B%2C%E6%9C%80%E8%BF%91%E5%AD%A6%E5%88%B0%E5%8D%95%E5%90%91%E9%93%BE%E8%A1%A8%E4%BA%86%2C%E6%9C%89%E4%B8%80%E4%B8%AA%E7%96%91%E6%83%91.%E6%AF%94%E5%A6%82%2C%E5%81%87%E8%AE%BE%E7%BC%96%E5%86%99%E5%87%BD%E6%95%B0creat%E6%98%AF%E5%BB%BA%E7%AB%8B%E4%B8%80%E4%B8%AA%E5%B8%A6%E6%9C%89%E5%A4%B4%E7%BB%93%E7%82%B9%E7%9A%84%E9%93%BE%E8%A1%A8%2C%E7%BC%96%E5%86%99%E5%87%BD%E6%95%B0take%E6%98%AF%E9%A1%BA%E5%BA%8F%E8%BE%93%E5%87%BA%E5%8D%95%E5%90%91%E9%93%BE%E8%A1%A8%E5%90%84%E7%BB%93%E7%82%B9%E6%95%B0%E6%8D%AE%E7%9A%84%E5%86%85%E5%AE%B9.%E5%87%BD%E6%95%B0creatstruct+list%7Bchar)
C语言中编写两个函数我是新手,最近学到单向链表了,有一个疑惑.比如,假设编写函数creat是建立一个带有头结点的链表,编写函数take是顺序输出单向链表各结点数据的内容.函数creatstruct list{char
C语言中编写两个函数
我是新手,最近学到单向链表了,有一个疑惑.比如,假设编写函数creat是建立一个带有头结点的链表,编写函数take是顺序输出单向链表各结点数据的内容.
函数creat
struct list
{char data;
struct list * next;
};
SLIST *creat()
{ int c;
SLIST *h,*s,*r;
h=(SLIST *)malloc(sizeof(SLIST)); /*生成头结点*/
r=h; /*r指向当前表尾*/
scanf(“%d”,&c) /*读入数据*/
while(c!=1) /*未读到数据结束标志时进入循环*/
{ s=(SLIST *)malloc(sizeof(SLIST)); /*生成一个新结点*/
s->data=c /*读入的数据存入新结点的data域*/
r->next=s: /*新结点连到表尾*/
r=s: /*r指向当前表尾*/
scanf(“%d”,&c); /*读入数据*/
}
r->next=‘\0’; /*置链表结束标志*/
return h; /*返回表头指针*/:
}
函数take:
void take(SLIST *head)
{ SLIST *p; .
p=head->next; /*p指向头结点后的第一个结点*/
if(p==‘\O’)
printf(“Linklist is null!\n”); /*链表为空(只有头结点)*/
else /*链表非空*/
{printf(“head”);
do
{printf(“->%d”,p->data); /*输出当前结点数据域中的值*/
p=p->next; /*p指向下一个结点*/
}
while(p!=‘\O’); /*未到链表尾,继续循环*/
printf(“->end\n”);
}
我想问的就是能不能在一个程序里面编写上面两个函数,然后在主函数里面实现先建立再输出呢.或者不需要编写函数?
上面的SLIST代表 struct list.如果可以怎么编写,直接在把上面两个函数写上,最后补上如下程序
void main()
{
struct list *pig;
pig=creat();
take(pig);
}
运行了就崩溃,哪里错了呢.讲会了加50分.关于形参实参,传值传址我懂的
C语言中编写两个函数我是新手,最近学到单向链表了,有一个疑惑.比如,假设编写函数creat是建立一个带有头结点的链表,编写函数take是顺序输出单向链表各结点数据的内容.函数creatstruct list{char
当然可以的