#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 100
/**定义一个链栈*/
typedef struct LNode{
int data;
struct LNode *next;
}LNode;
/**初始化*/
void initStack(LNode *&lst){ //此处需要注意 定义一个LNode * 类型的 lst ,同时因为需要改变lst 所以用了&
lst=(LNode*)malloc(sizeof(LNode));
lst->next=NULL;
printf("链栈初始化成功!\n");
}
/**判断栈是否为空*/
int isEmpty(LNode *lst){
if(lst->next==NULL){
printf("链表为空");
return 1;
}else{
return 0;
}
}
/**入栈*/
void push(LNode *lst,int x){
LNode *p;
//创建头结点
p=(LNode*)malloc(sizeof(LNode));
p->next=NULL;
/**入栈操作*/
p->data=x;
p->next=lst->next;
lst->next=p;
//输出
printf("%d 入栈成功\n",x);
}
/**出栈操作*/
void pop(LNode *lst,int &x){
LNode *p;
if(lst->next==NULL){
printf("栈空,请勿出栈!\n");
}
else{
p=lst->next;
x=p->data;
lst->next=p->next;
free(p);
printf("%d 出栈成功\n",x);
}
}
/**打印栈*/
void printfStack(LNode *lst){
LNode *p;
p=lst->next;
while(p!=NULL){
printf("%d ",p->data);
p=p->next;
}
}
int main(){
LNode * linkStack;
initStack(linkStack);
push(linkStack,5);
push(linkStack,6);
push(linkStack,9);
push(linkStack,90);
int x=0;
pop(linkStack,x);
printfStack(linkStack);
//printf("%d",linkStack->next->data);
}
链栈C++(考研数据结构)
原创mb60c9b4c3db1e6 ©著作权
©著作权归作者所有:来自51CTO博客作者mb60c9b4c3db1e6的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
【数据结构】C语言实现顺序栈
【数据结构】第三章——栈、队列和数组详细介绍通过C语言实现顺序栈
数据结构 C语言 顺序栈 -
【数据结构】C语言实现共享栈
【数据结构】第三章——栈、队列与数组详细介绍通过C语言实现共享栈
数据结构 C语言 栈 共享栈 -
数据结构与算法(c )版 数据结构与算法应用c++版
目录 1、数据结构讨论的范畴2、基本概念3、算法和算法的量度1、数据结构讨论的范畴 &nbs
数据结构与算法(c )版 数据结构 数据 执行时间 -
在mysql中returns
操作MySQL数据库向
在mysql中returns 表名 数据 数据库