谢了,有个请求,下次写程序可以帮我把句释写出来么?
我还掉了一句,“接下来先调用以上算法,然后分别打印栈中内容!”可否帮小女补充完整?
----------------解决方案--------------------------------------------------------
呵呵,你象小生一样好学
----------------解决方案--------------------------------------------------------
呵呵,不是偶喜欢泼冷水啊,你认为改了以后就是栈吗?
我不这么认为,再看看几个指针的指向
......
ALinlList *Node0;
Node0=(struct ALinlList*)malloc(sizeof(struct ALInlList));
Node0=MS[0];
.......
/*for循环内的*/
Node->next=MS[i];
Node=MS[i];
Node->next=NULL;
.....
我是一只很懒的菜鸟,太长的代码偶写不来。不过这样版主应该会明白我的意思(不管
我是对的还是错的)
[此贴子已经被作者于2004-06-01 12:46:48编辑过]
----------------解决方案--------------------------------------------------------
define N 50.就是将50赋给N
----------------解决方案--------------------------------------------------------
呵呵,不是偶喜欢泼冷水啊,你认为改了以后就是栈吗?
我不这么认为,再看看几个指针的指向
......
ALinlList *Node0;
Node0=(struct ALinlList*)malloc(sizeof(struct ALInlList));
Node0=MS[0];
.......
/*for循环内的*/
Node->next=MS[i];
Node=MS[i];
Node->next=NULL;
.....
我是一只很懒的菜鸟,太长的代码偶写不来。不过这样版主应该会明白我的意思(不管
我是对的还是错的)
不知道你是什么意思,MS[50]是一个ALinlList类型的数组,不需要在malloc了,
举个例子,你输入50,65,105,51,66,106
假设MS地址从0开始,那么第一个栈MS[0]中next值是6,就是放51的,而MS[6]中next是3,就是放50的,而MS[3]中next是NULL。
MS[1]中next值是7,就是放66的,而MS[7]中next是4,就是放65的,而MS[4]中next是NULL。
MS[2]中next值是8,就是放106的,而MS[8]中next是5,就是放105的,而MS[5]中next是NULL。
你把图画出来就行了
----------------解决方案--------------------------------------------------------
所谓的栈就是先进后出(FILO)。
也就是说MS[0],MS[1],MS[2]必须在栈底
版主的程序MS[0],MS[1],MS[2]不管怎样,他们都是在栈顶,这是栈吗?
我之所以要重新分配三个指针就是为了记录栈顶的位置,
而版主直接用MS[0],MS[1],MS[2]来完成,这是错误的
----------------解决方案--------------------------------------------------------
看来你并没有完全理解栈的意思,也没有理解楼主的意思,下面是楼主的话
用定义类型为ALinlList的一维数组MS[MAXSize]建立三个链接堆栈,其中前三个元素的NEXT域用来存储三个栈顶指针,
并不是一定要是栈底才叫栈,很多链接存储的栈都是存放栈顶指针的,
建议你可以看一下数据结构书上有关链接栈的内容,我想你会明白的。
----------------解决方案--------------------------------------------------------
我晕了
sorry
----------------解决方案--------------------------------------------------------
就是定义一个值的下限为50,例:
int a[N} ;
这个n的最大值为50,这个定义一般在main函数以为,是一个全局变量
----------------解决方案--------------------------------------------------------
#include <stdio.h>
#define n 100
#define m 100
#define k 100
main()
{ int a[n];
int b[m];
int c[k];
int x;
printf("please input x=");
scanf("%d",&x);
if(x>60)
{if(x<100)
a[0]=x;
printf("a[0]=%d",a[0]);
b[0]=0;
c[0]=0;
}
else
b[0]=x;
printf("b[0]=%d",b[0]);
a[0]=0;
c[0]=0;
if(x>100)
c[0]=x;
printf("c[0]=%d",c[0]);
a[0]=0;
b[0]=0;
}
看这个程序可以满足你吗?不行再说,我想用数组一样可以吧,我的数据结构不是很好
----------------解决方案--------------------------------------------------------