数据结构(C++)——链栈
2024-09-05 19:40:31
结点结构
typedef char ElemType; typedef struct LkStackNode{
ElemType data;
LkStackNode *next;
}*Stack,SNode,*PNode;
初始化链栈
Stack IntiStack(){
Stack s;
s=new LkStackNode; //分配结点空间
s->next=NULL; //处理next指针 return s; //返回栈指针
}
压栈
bool Push(Stack S,ElemType &x){
if(S==NULL){
return false; //栈无效,返回false
} PNode FirstCell;
FirstCell=new SNode; //为待数据分配一个结点空间 FirstCell->data=x;
FirstCell->next=S->next; //将新结点插在数据结点的最前面
S->next=FirstCell; return true;
}
出栈
bool Pop(Stack S,ElemType &x){
if(S==NULL||S->next==NULL){ //栈无效或空栈,无法出栈,返回false
return false;
} PNode FirstCell; FirstCell=S->next;
x=FirstCell->data; //返回栈顶元素 S->next=FirstCell->next;
delete FirstCell; //释放栈顶空间
return true;
}
访问栈顶元素
bool Top(Stack S,ElemType &x){
if(S==NULL||S->next==NULL){ //栈无效或空栈
return false;
} x=S->next->data; return true;
}
最新文章
- 如何让include标签包裹的布局置于屏幕最下方?
- 部署Eclipse中的Web项目到Tomcat服务器运行
- 转: Vue.js——60分钟组件快速入门(上篇)
- iOS 用代码+Xib搭建UI界面实例
- docker下部署gitlab
- Android之shape属性详解
- Wireshark基本介绍和学习TCP三次握手(转)
- 自定义input file样式
- Sql Server trace flags
- Razor基础语法
- tcpdf导出pdf数据支持中文的解决方案
- 201521123061 《Java程序设计》第一周学习总结
- web前端学习(2):开始编写HTML
- android View层的绘制流程
- mysql添加用户,授权,刷新权限
- phpstorm显示页面不停的在indexing转圈中,并且文件名还一直在刷新
- CA认证的原理和流程及https原理
- 替换字符串空格、tab制表符
- C#利用tabControl控件实现多窗体嵌入及关闭
- cat正常,cat重定向到文件可能是乱码;解决办法