链栈操作实现
来源:互联网 发布:app搬家软件下载 编辑:程序博客网 时间:2024/06/07 09:46
#include<stdio.h>#include<stdlib.h>typedef int ElemType;typedef struct linknode{ ElemType data; struct linknode *next;}LiStack;/****************初始化链栈********************/void InitStack(LiStack* &s){ s=(LiStack*)malloc(sizeof(LiStack)); s->next=NULL;}/****************销毁链栈********************/void DestroyStack(LiStack* &s){ LiStack *p=s->next,*q=s; while(p!=NULL) { free(q); q=p; p=p->next; } free(p);}/****************判断链栈是否为空********************/bool StackEmpty(LiStack* &s){ return (s->next==NULL);}/****************进栈********************/void Push(LiStack* &s,ElemType &e){ LiStack *p; p=(LiStack*)malloc(sizeof(LiStack)); p->data=e; p->next=s->next; s->next=p;}/****************出栈********************/bool Pop(LiStack* &s,ElemType &e){ LiStack *p=s->next; if(s->next!=NULL) return false; else { e=p->data; s->next=p->next; free(p); return true; }}/****************得到栈顶元素********************/bool GetTop(LiStack* &s,ElemType &e){ LiStack *p=s->next; if(s->next==NULL) return false; e=p->data; return true;}/****************输出链栈元素********************/void PrintStack(LiStack* &s){ LiStack *p=s->next; while(p!=NULL) { printf("%d ",p->data); p=p->next; }}int main(){ LiStack *s; int a=9; InitStack(s); Push(s,a); PrintStack(s);}
0 0
- 链栈操作实现
- 链表实现的栈操作
- 链栈的基本操作实现
- C++实现链栈的基本操作
- 链栈的简单操作实现
- php实现栈操作
- 链队操作实现
- 用栈操作实现队列的操作
- 实现链表基本操作(简单操作)
- java实现栈资源操作
- 栈操作的C++实现
- 栈操作的C++实现
- C语言实现栈操作
- 顺序栈的操作实现
- 顺序栈的操作实现
- 链表操作代码实现
- C++实现链表操作
- C实现链表操作
- 船舶模拟驾驶
- st7735s SPI驱动显示图标
- HttpServletRequest.getRemoteAddr()之代理提交
- React开发调试工具
- python小项目之可以发声的翻译软件
- 链栈操作实现
- 大神分享的一个算法题
- java基础
- php知识点记录
- spring + log4j 配置说明
- Eclipse 项目转AndroidStudio
- 顺序表实现学生管理系统
- [leetcode: Python]102. Binary Tree Level Order Traversal
- oracle中的function 、procedure、packages、package bodies比较