当前位置: 代码迷 >> C语言 >> [求助]各位高手,请帮助小女
  详细解决方案

[求助]各位高手,请帮助小女

热度:433   发布时间:2004-06-01 12:14:00.0

谢了,有个请求,下次写程序可以帮我把句释写出来么?

我还掉了一句,“接下来先调用以上算法,然后分别打印栈中内容!”可否帮小女补充完整?


----------------解决方案--------------------------------------------------------
呵呵,你象小生一样好学
----------------解决方案--------------------------------------------------------

呵呵,不是偶喜欢泼冷水啊,你认为改了以后就是栈吗?

我不这么认为,再看看几个指针的指向

......

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
----------------解决方案--------------------------------------------------------
以下是引用zff_ff在2004-06-01 12:41:43的发言:

呵呵,不是偶喜欢泼冷水啊,你认为改了以后就是栈吗?

我不这么认为,再看看几个指针的指向

......

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


----------------解决方案--------------------------------------------------------
回复
以下是引用流星雨在2004-05-31 21:07:12的发言: #define N 50定义的是什么?

就是定义一个值的下限为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;
   }
看这个程序可以满足你吗?不行再说,我想用数组一样可以吧,我的数据结构不是很好
----------------解决方案--------------------------------------------------------
  相关解决方案