8563
題目內容:
试编写算法,采用顺序存储实现栈的初始化、入栈、出栈操作。要求输入整形数据,输入0表示结束(0不存储在栈中)。
输入输出说明:
输入:1 2 3 4 5 6 7 8 9 0
输出:9 8 7 6 5 4 3 2 1
#include <bits/stdc++.h>
#define Maxsize 1000
using namespace std;
typedef struct
{
int data[Maxsize];
int top;
}Sqstack;
void init(Sqstack &S)//初始化栈
{
//构造一个空栈
S.top=-1;
}
int push(int x,Sqstack &S)
{
if(S.top==Maxsize-1)
{
cout<<"FULL"<<endl; return 0;}
S.top++;
//cout<<S.top<<" ";
S.data[S.top]=x;
return 1;
}
int pop(Sqstack &S)
{
if(S.top==-1)
{
cout<<"NULL"<<endl; return 0;}
// x=S.data[S.top];
while(S.top!=-1)
{
cout<<S.data[S.top]<<" ";
S.top--;
}
return 1;
}
int main ()
{
Sqstack S;
init(S);
int x;
while (cin>>x&&x)
{
push(x,S);
}
pop(S);
return 0;
}
8562
題目內容:
试编写算法,采用链式存储实现栈的初始化、入栈、出栈操作。要求输入整形数据,输入0表示结束(0不存储在栈中)。
输入输出说明:
输入:1 2 3 4 5 6 7 8 9 0 输出:9 8 7 6 5 4 3 2 1
或者输入:11 22 33 44 55 66 77 88 99 0
输出:99 88 77 66 55 44 33 22 11
#include <bits/stdc++.h>
using namespace std;
typedef struct StackNode
{
int data;
struct StackNode *next;
}StackNode,*Linkstack; //栈只在栈顶操作,所以不设头结点
void LinkstackInit(Linkstack &top)
{
//构造空栈,栈顶指针为top
top=NULL;
}
void push(int x,Linkstack &top)
{
Linkstack S;
S=new StackNode