各位高手,敬请帮我看个C语言的程序吧(数据结构)

#include<stdio.h>
#include<stdlib.h>
#define TRUE 1
#define FALSE 0
#define STACK_SIZE 20
typedef struct
{
int data[STACK_SIZE];
int top;
}SeqStack;
void InitStack(SeqStack *s)
{
(*s).top = -1;
}
int IsEmpty(SeqStack *s)
{
if((*s).top == -1) return TRUE;
return FALSE;
}
int IsFull(SeqStack *s)
{
if((*s).top == STACK_SIZE-1) return TRUE;
return FALSE;
}
int Push(SeqStack *s, int element)
{
if(IsFull(s)) return FALSE;
(*s).top ++;
(*s).data[(*s).top] = element;
return TRUE;
}
int Pop(SeqStack *s, int element)
{
if(IsEmpty(s)) return FALSE;
element = (*s).data[(*s).top];
(*s).top --;
return TRUE;
}
int GetTop(SeqStack *s,int element)
{
if(IsEmpty(s)) return FALSE;
element = (*s).data[(*s).top];
return TRUE;
}
int main()
{
int a[21];
SeqStack *s;
InitStack(s);
for(int i=0;i<20;i++)
{
scanf("%d",&a[i]);
Push(s,a[i]);
}
int e;
while(!IsEmpty(s))
{
Pop(s,e);
printf("%d ",e);
}
system("pause");
return 0;
}

我只想压栈,然后出栈~~~
运行不了啊

main里面SeqStack *s; 只是声明了一个栈的指针,并没有生成栈的实体啊.
应该是SeqStack s;,后面的函数调用都改成InitStack(&s); Push(&s,a[i]);这样
温馨提示:内容为网友见解,仅供参考
无其他回答

C语言高手来一下帮我编个小程序
首先,我可以用字符串来做。我现在先把代码贴上:include <stdio.h> int main(){ char *str , *ch , *c[] = {"个位为:" , "十位为:" , "百位为:" , "千位为:" , "万位为:"};scanf("%s",str);int i = 0 ;\/\/要求1.求出它是几位数 printf("此数为%d位数\\n",(sizeo...

C语言:各位高手帮我看看这个编程哪里错了??error C2143: syntax error...
void main(){ int i,j,a[3][5],flag,maxj=0,max,maxx=0;printf("Input the array:");for(i=0;i<3;i++)for(j=0;j<5;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){ max=a[i][0];for(j=0;j<5;j++)if(a[i][j]>max){ max=a[i][j];maxj=j;maxx=i...

C语言高手帮编个小程序?
flushall();scanf("%c",&flag);} } if(flag=="n")break;} }

这个C语言各位高手来帮我看看这是怎么回事
中间有逗号,你输入时也要输入逗号。

请C语言高手帮我编写几个小程序~(一定要用C++编写噢~)
InitList(C);i=j=1; k=0;la_len=ListLength(A);lb_len=ListLength(B);while((i<=la_len)&&(j<=lb_len)){ GetElem(A,i,ai);GetElem(B,i,bi);if(ai<=bj){ ListInsert(C,++k,ai); ++i;} else ListInsert(C,++k,bj); ++j;} } while(i<=la_len){ GetElem(A,i++...

C语言 麻烦各位大侠帮我解释个程序
宏定义中的SQR(X) X*X有如下作用:在接下来的程序中,SQR(某表达式)被直接变为:某表达式*某表达式(注意没有括号)所以 SQR(k+m)就相当于 k+m*k+m a\/=SQR(k+m)\/SQR(k+m)就相当于 a=a\/k+m*k+m\/k+m*k+m 应该懂了吧~?

哪个高手告诉我用C语言怎么编“从键盘上输入一个正整数,计算该数的各...
include<stdio.h> void main(){ int a,s;s=1;printf("请输入一个整数");scanf("%d",&a);while (a>0){ s=s*(a % 10);a=a\/10;} printf("a=%d",s);}

麻烦各位牛人,用C语言写个程序,输出 A ABA ABCBA ABCDCBA 怎么输出...
其实你的程序里面只要改一个地方就好了 就是 for(j=1;j<=2*i-1;j++)这句话里面的j你换一个字母,不要用j,在重新定义一个字母换进去,我试过了,可以的

各位高手帮帮小妹我吧!——C语言的编程
include<string.h> sdel(char str[80],char ch[20],char t[80]){ int i,j,len=strlen(str),lench=strlen(ch);char *strc;int p=0,begin=0,num=0;for(j=0;j<len;j++){ strc=strstr(str,ch);if(strc==NULL)break;p=strc-str;len=strlen(str);for(i=p;i<len-lench;i...

编程高手请进!(C语言)
scanf("%c",&yes);} } 2.include <stdio.h> void main(){ int gj, mj, xj, t1, t2;for (gj=1; gj<=20; gj++){ for (mj=1; mj<34; mj++){ xj=100-gj-mj;t1=xj%3;t2=5*gj+3*mj+xj\/3;if (t1==0&&t2==100)printf("gj=%d,mj=%d,xj=%d\\n",gj,mj,xj);} }...

相似回答