//Sorry,看来我理解错了,这是改后的>>>>>>>>>>>>>>>>
//顺序栈
#includestdio.h
#includestdlib.h
#define MAXSIZE 100
typedef struct
{
int data[MAXSIZE];
int top;
}SqStack;
void PushStack(SqStack *S,int x) //入栈
if(S-top==MAXSIZE-1) printf("栈已满,不能入栈!\n");
else
}
void PopStack(SqStack *S) //退栈
if(S-top==-1) printf("栈为空,不能出栈!\n");
int GetStackTop(SqStack S) //取栈顶元素
return S.data[S.top];
main()
int x,i;
SqStack myStack;
myStack.top=-1;
do
scanf("%d",i);
switch(i)
case 1:myStack.top=-1;printf("栈已置空!\n");break;
scanf("%d",x);
PushStack(myStack,x);break;
else printf("栈为空,没有元素!\n");break;
default:printf("选择错误,请重新输入!\n");break;
return 0;
//链栈
typedef struct SNode
int data;
struct SNode *next;
}SNode,*LinkStack;
LinkStack top;
LinkStack PushStack(LinkStack top,int x) //入栈
LinkStack s;
s=(LinkStack)malloc(sizeof(SNode));
s-data=x;
s-next=top;
top=s;
return top;
LinkStack PopStack(LinkStack top) //退栈
LinkStack p;
if(top!=NULL)
p=top;
top=top-next;
free(p);
printf("退栈已完成\n");
else printf("栈是空的,无法退栈!\n"); return 0;
int GetStackTop(LinkStack top) //取栈顶元素
return top-data;
int i,x;
case 1:top=NULL;break;
top=PushStack(top,x);
printf("进栈已完成!\n");break;
else printf("栈是空的,没有元素!\n");break;
main(),在c语言中称之为"主函数",一个c程序有且仅有一个main函数,任何一个c程序总是从main函数开始执行,main函数后面的一对圆括号不能省略.
具体形式如下:
{ ? }
被大括号{ }括起来的内容称为main函数的函数体,这部分内容就是计算机要执行的内容.
在{ ?}里面每一句话后面都有一个分号(;),在c语言中,我们把以一个分号结尾的一句话叫做一个c语言的语句,分号是语句结束的标志.
扩展资料:
函数是一组一起执行一个任务的语句.每个 C 程序都至少有一个函数,即主函数?main()?,所有简单的程序都可以定义其他额外的函数.
您可以把代码划分到不同的函数中.如何划分代码到不同的函数中是由您来决定的,但在逻辑上,划分通常是根据每个函数执行一个特定的任务来进行的.
函数声明告诉编译器函数的名称、返回类型和参数.函数定义提供了函数的实际主体.
C 标准库提供了大量的程序可以调用的内置函数.例如,函数?strcat()?用来连接两个字符串,函数?memcpy()?用来复制内存到另一个位置.
函数还有很多叫法,比如方法、子例程或程序,等等.
你这是数据结构中的队列问题,而不是栈的问题.head代表的是队列头,删除时删的是队列头元素,tail代表的是队列尾,插入时插的是队列尾元素
程序中这条语句是错误的.中括号只有一半,那一半呢? *p_y=qp++head];
至于要求的主函数,如果是队列问题还要涉及的是一般队列还是循环队列,所以呢没法写给你.
以上就是土嘎嘎小编为大家整理的c语言栈的主函数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!