链栈的实现

目录

链栈由以下2个操作:入栈操作和出栈操作,创建2个函数,具体实现在下面:

#include <stdio.h>
#include <malloc.h>
typedef struct Node
{
char data;
struct Node *next;
}LstNode;

typedef LstNode *LStack;

LStack Push(LStack top,char x)
{
LstNode *temp;
temp=(LstNode*)malloc(sizeof(LstNode));
if(temp==NULL)
{
   printf("申请空间失败");
}
temp->data=x;
temp->next=top->next;
top->next=temp;
return (top);
}

char Pop(LStack top)
{
char x;
LstNode *temp;
if(top->next==NULL)
{
   printf("栈空无法出栈");
}
temp=top->next;
x=temp->data;
top->next=temp->next;
free(temp);
return (x);
}

main()
{
LStack LT;
char c;
LT=(LStack)malloc(sizeof(LstNode));
LT->next=NULL;
printf("请输入入栈字符:\n");
while((c=getchar())!='\n')
{
   LT=Push(LT,c);
}
printf("输出出栈字符:\n");
do
{
   c=Pop(LT);
   putchar(c);
}while(LT->next!=NULL);
printf("\n");
}

实现如下

链栈的实现