标题:[求助]一个关于stack的问题
只看楼主
Oracle菜鸟
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
 问题点数:0 回复次数:10 
[求助]一个关于stack的问题

我最近学数据结构,在栈这遇到了问题
#include<stdio.h>
#include<stdlib.h>

#define EMPTY 0
#define FULL 1000

typedef char data;
typedef enum{false, true} boolean;

typedef struct elem{ /* an element on the stack */
data d;
struct elem *next;
}elem;

typedef struct stack{
int cnt;
elem *top;
}stack;

void initialize(stack *stk);
void push(data a, stack *stk);
data pop(stack *stk);
data top(stack *stk);
boolean empty(const stack *stk);
boolean full(const stack *stk);

int main(void)
{
char str[] ="My name is Joanna Kelley!";
int i;
stack s;

initialize(&s); /*initialize the stack*/
printf(" In the string: %s\n",str);
for(i = 0; str[i] != '\0'; ++i)
if(!full(&s))
push(str[i], &s); /*push a char on the stack*/
printf("From the stack: ");
while(!empty(&s));
putchar(pop(&s)); /*pop a char off the stack*/
putchar('\n');
return 0;
}

void initialize(stack *stk)
{
stk -> cnt = 0;
stk -> top = NULL;
}

void push(data d,stack *stk)
{
elem *p;

p = malloc(sizeof(elem));
p -> d = d;
p -> next = stk -> top ;
stk -> top = p;
stk -> cnt++;

}

data pop(stack *stk)
{
data d;
elem *p;

d = stk -> top -> d;
p = stk -> top;
stk -> top = stk -> top -> next;
stk -> cnt--;
free(p);
return d;
}

data top(stack *stk)
{
return (stk -> top -> d);
}

boolean empty(const stack *stk)
{
return ((boolean)(stk -> cnt == EMPTY));
}

boolean full(const stack *stk)
{
return ((boolean) (stk -> cnt == FULL));
}
这个程序是我直接从课本抄来的,理论上的执行结果,应该是:
In the string : My name is Joanna Klley!
From the stack : !yellek annaoJ si eman yM
但是我在执行时只到了"From the stack :"就停了,各位高手请帮我看看到底是怎么回事,小弟在此先谢了!
还有,谁能告诉我怎么学数据结构啊~~好难~~~

搜索更多相关主题的帖子: stack data typedef elem struct 
2006-04-09 10:58
~天下无敌~
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-8
得分:0 
C里面有这个东西吗boolean)

朝着伟大的红客狂奔中!终有一日,小日本和美国姥的联邦调查局的官方网站上会飘满红旗和五角星!
2006-04-09 11:02
え元元え
Rank: 1
等 级:新手上路
帖 子:103
专家分:0
注 册:2006-4-7
得分:0 
好象只有bool

2006-04-09 11:08
Oracle菜鸟
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 
我用了typedef啊

I am tired......
2006-04-09 11:11
Oracle菜鸟
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 
还有,我在LINUX上只到"In the string : My name is Joanna Klley!"就停了

I am tired......
2006-04-09 11:30
Oracle菜鸟
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 

谁能给我几个关于栈的完整可执行程序吗?


I am tired......
2006-04-09 11:53
~天下无敌~
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-8
得分:0 

栈不是你哪个样子的,看看严蔚敏的数据结构,上面有详细的说明,你的栈定义不标准


朝着伟大的红客狂奔中!终有一日,小日本和美国姥的联邦调查局的官方网站上会飘满红旗和五角星!
2006-04-09 13:02
Oracle菜鸟
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 
我们老师叫我们不要看严蔚敏的书
我们用的都是英文的教材

I am tired......
2006-04-09 15:13
~天下无敌~
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2006-4-8
得分:0 
叼,你们老师太牛B了

朝着伟大的红客狂奔中!终有一日,小日本和美国姥的联邦调查局的官方网站上会飘满红旗和五角星!
2006-04-09 15:24
Oracle菜鸟
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2006-4-9
得分:0 
是啊,他从美国回来的


I am tired......
2006-04-09 15:43



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-56212-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.324415 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved