#include "stdafx.h"
#include "stdafx.h"
#include <stdio.h>
#include <iostream>
#define MaxSize 50
using namespace std;
typedef struct
{
int data[MaxSize];
int top;
}SqStack;
//初始时设置S.top=-1,栈为空,S.top栈顶指针;栈顶元素S.data[S.top]。
bool Create_SqStack(SqStack &S)
{
S.top = -1;
int x = 0;
cin >> x;
while (x != 99)
{
S.data[++S.top] = x;
cin >> x;
}
//判满
if (S.top < MaxSize - 1)
return true;
else
return false;
}
void Show_SqStack(SqStack &S)
{
while (S.top != -1)//判空
{
int x = 0;
x = S.data[S.top--];
cout << x << endl;
}
}
typedef struct Linknode
{
int data;//数据域
struct Linknode *next;//指针域
}*LiStack;//栈类型定义
LiStack Create_LStack(LiStack &LS)
{
LS = (LiStack)malloc(sizeof(Linknode));
LS->next = NULL;
LS->data = 0;
LS->next;
int x = 0;
cin >> x;
while (x != 99)
{
LiStack s;
s = (LiStack)malloc(sizeof(Linknode));
s->data = x;
s->next = LS->next;//类似尾插,插入结点的前后都要赋值。
LS->next = s;
cin >> x;
}
return LS;
}
void Show_LStack(LiStack &LS)
{
LiStack p = LS->next;
while (p != NULL)//判空
{
cout << p->data << endl;
p = p->next;
}
}
int main()
{
SqStack S;//顺序栈
Create_SqStack(S);
Show_SqStack(S);
LiStack LS;//链栈
Create_LStack(LS);
Show_LStack(LS);
system("pause");
return 0;
}
王道数据结构顺序栈和链栈的创建与展示
最新推荐文章于 2023-07-25 11:16:58 发布