#include<stdio.h>
#define OK 1
typedef int SElemtype;
typedef int Status;
typedef struct StackNode
{
SElemtype data;
struct StackNode* next;
}StackNode,*LinkStackPtr;
StackNode* s, * head; //用于栈中的结点 //用于创造结点
typedef struct LinkStack
{
LinkStackPtr top;
int count;
}LinkStack;
LinkStack* S; //栈
Status Creat()
{
s = (LinkStackPtr)malloc(sizeof(StackNode));
scanf_s("%d", &s->data);
while (s->data)
{
s->next = S->top; //将S与s联系起来
S->top = s; //放置s到top位置
S->count++;
Creat();
}
return OK;
}
Status Push(LinkStack* S, SElemtype* e)
{
s = (LinkStackPtr)malloc(sizeof(StackNode));
s->data = *e;
s->next = S->top;
S->top = s;
S->count++;
return OK;
}
Status Print(LinkStack* S)
{
s = (LinkStackPtr)malloc(sizeof(StackNode));
head = (LinkStackPtr)malloc(sizeof(StackNode));
s = S->top;
head = S->top;
for (int i = 0; i < S->count; i++)
{
printf("%d ", s->data);
S->top = S->top->next;
s = (LinkStackPtr)malloc(sizeof(StackNode));
s = S->top;
}
S->top = head; //将S置原
}
int main()
{
S = (LinkStack*)malloc(sizeof(LinkStack));
S->count = 0;
SElemtype e;
Creat();
printf("请输入插入元素");
scanf_s("%d", &e);
Push(S, &e);
printf("%d\n", S->count);
Print(S);
}
栈—链式结构
最新推荐文章于 2024-07-10 14:52:21 发布