大神们,C语言的一个程序,帮我看看该怎么改,谢谢了。这是用的栈里面的链表,达到先进先出的要求。

a.h中的内容如下:#ifndef__WORD__#define__WORD__typedefstructword{chararr;structword*next;}Wo... a.h中的内容如下:
#ifndef __WORD__
#define __WORD__

typedef struct word
{
char arr;
struct word *next;
}Word;

Word *create();
int add(Word **ch,char c);
int show(Word *ch);

#endif

main.c中的内容如下:
#include "a.h"
#include <stdio.h>

int main(int argc,char *argv[])
{
Word *p;
p = create();
add(&p,'a');
add(&p,'b');
show(p);
}

下面是a.c中的内容:
#include "a.h"
#include <stdio.h>
#include <stdlib.h>

Word *create()
{
Word *ch = (Word *)malloc(sizeof(Word));
ch -> next = NULL;
return ch;
}

int add(Word **p,char c)
{
Word *q = (Word *)malloc(sizeof(Word));
q -> next = *p;
q -> arr = c;
(*p) -> next = q;
return 0;
}

int show(Word *ch)
{
Word *L = ch;
while(L -> next)
{
printf("%c\n",L -> arr);
L = L -> next;
}
return 0;
}
标题上说错了,是先进后出
展开
 我来答
仙亦佛
2017-10-23 · TA获得超过366个赞
知道小有建树答主
回答量:707
采纳率:59%
帮助的人:428万
展开全部
栈只能是先进后出,队列是先进先出。
更多追问追答
追问
是我说错了,就是先进后出
追答
看不懂,你就没有设计栈,怎么用它?动态开辟空间都要判断一下是否开辟成功,你都没检验?add里第一个参数为啥是二级指针?不明白。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式