链式栈的初始化,判空,进栈,出栈,求长,求顶,打印,清空和销毁
来源:互联网 发布:javascript基础 编辑:程序博客网 时间:2024/04/30 10:43
链接地址http://blog.csdn.net/stpeace/article/details/8112821#include<iostream>using namespace std;typedef struct LNode{ int data;//数据域 struct LNode *next;//指针域}LNode,*Stack;//LNode 定义一个节点,Stack定义的是一个指向节点的地址void initStack(LNode *&lst){ lst=new LNode; lst->next=NULL;}int isEmpty(LNode *lst)//不是空返回0,是空返回1{ if(lst->next==NULL)//判断栈的第一个节点是否为NULL return 1; else return 0; return 0;}void Push(LNode *lst,int x)//进栈{ LNode *p; p=new LNode; p->next=NULL;//为新建节点的指针域设置一下,不要也可以,设置了可以避免一些错误 //头插法 p->data=x; p->next=lst->next;//处理p的指针域 p->next=NULL;//处理lst的指针域}int Pop(LNode *lst)//出栈{ LNode *p; if(lst->next==NULL) { return 0; } p=lst->next;//用p做中间处理 lst->next=p->next; delete p; return 1;}int getLength(LNode *lst)//求长{ LNode *p=lst; int length=0; while(NULL!=p->next) { p=p->next; length++; } return length;}int getTop(LNode *lst)//访问栈的第一个数据{ if(isEmpty(lst)) exit(1);//退出 return lst->next->data;}void clear(LNode *lst)//清空{ /*while(lst->next!=NULL) { Pop(lst); }*/ while(!isEmpty(lst))//isEmpty不是空返回0,是空返回1.0相当于false,!false相当于true { Pop(lst); } }void destory(LNode *lst){ while(!isEmpty(lst)) Pop(lst); delete lst;//只是销毁指针指向的数据,而指针本身并未销毁 lst=NULL;}void print(LNode *lst){ LNode *p; while(lst->next!=NULL) { p=lst->next; cout<<p->data<<endl; lst->next=p->next; }}int main(){ Stack stack1; initStack(stack1); isEmpty(stack1); Push(stack1); Push(stack1); Pop(stack1); print(stack1); int b; b=getLength(stack1); cout<<b<<endl; clear(stack1); destory(stack1); return 0;}
1 0
- 链式栈的初始化,判空,进栈,出栈,求长,求顶,打印,清空和销毁
- 顺序栈的初始化,进栈、出栈、求长、判空、访顶、遍历、清空、销毁
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- 链栈的建立、判空、入栈、出栈、求长、访顶、清空和销毁
- 链栈初始化、进栈、出栈、判空、遍历、求长、求顶、清栈、毁栈
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列的建立、判空、入队、出队、求长、访头、清空和销毁
- 链队列和循环队列的表示与实现-初始化、判空、求长、入队、出队、遍历、求头、求尾、清队、毁队
- 双向链表的创建、打印、求长、插入、删除、查值、清空、销毁
- 双向循环链表的创建、插入、删除、求长、查询、打印、修改、清空、销毁
- 顺序栈初始化,判空,进栈,出栈,打印
- 链式堆栈的初始化、出栈、入栈、取栈顶元素、判空
- C++ 栈的 基本操作 入栈 出栈 判空 求长度
- C++ 栈的 基本操作 入栈 出栈 判空 求长度(方法二)
- 线性存储----链式栈的创建、压栈、出栈、清空、空栈判断
- 栈和队列的基本操作(分顺序和链式,5种基本操作有创建,判空,判满,入,出)
- [数据结构]c语言实现链栈的入栈,出栈,清空,销毁等操作
- linux学习网站
- bzoj1858【scoi2010】序列操作
- java 找不到或无法加载主类
- C++中的左值和右值
- Chipmunk引擎在Cocos2d-js中的使用
- 链式栈的初始化,判空,进栈,出栈,求长,求顶,打印,清空和销毁
- 源码编译安装VIM
- 不忘初心,方得始终!
- 剑指Offer--二叉树的下一个节点
- OC的类族以及工厂模式
- CentOS7编译BCM4313无线网卡驱动
- mysql复制报错案例处理(转)
- PIC18+DS1302程序设计
- Nginx学习笔记七Nginx的Web缓存服务