链栈的创建、入栈、出栈
来源:互联网 发布:2017网络热词两个字 编辑:程序博客网 时间:2024/06/15 13:30
链栈是在链表基础上建立的,链栈的栈顶指针相当于链表中的头指针。示意图如下:
#include "stdafx.h"#include<iostream>typedef int type;using namespace std;typedef struct stack{type data;struct stack *next;}stack,*ChainStack;//建立空栈函数ChainStack CreateChainStack(ChainStack s){s=(ChainStack)malloc(sizeof(stack)); //相当于链表的头结点if(NULL==s){ return NULL;}s->data=-1;s->next=NULL;return s;}//入栈ChainStack Push(ChainStack s,type data){ChainStack temp=(ChainStack)malloc(sizeof(stack)); if(NULL==temp){ cout<<"申请内存失败!"<<endl; exit(-1);}temp->data=data;temp->next=s->next;s->next=temp;return s;}//计算链栈的长度int LengthStack(ChainStack s){int i=0;ChainStack temp=s->next;while(NULL!=temp){ i++; temp=temp->next;}return i;}//出栈ChainStack Pop(ChainStack s){ChainStack temp;int len=LengthStack(s);if(NULL==s->next) { return NULL;}temp=s->next;s->next=temp->next;return temp;}//打印链栈中的元素void PrintSatck(ChainStack s){ChainStack temp=s->next;if(NULL==s->next) { exit(-1);} while(NULL!=temp){cout<<temp->data<<" ";temp=temp->next;}cout<<endl;}int _tmain(int argc, _TCHAR* argv[]){int a[6]={20,22,24,26,28,30}; ChainStack s=NULL; s=CreateChainStack(s); for(int i=0;i<6;i++) Push(s,a[i]); PrintSatck(s); ChainStack tp=Pop(s); cout<<tp->data<<endl;return 0;}
运行结果为:
0 0
- 链栈的创建、入栈、出栈
- 顺序栈的创建、入栈、出栈
- 栈的操作,创建,遍历,入栈,出栈
- 栈的创建、入栈、出栈、统计长度
- 栈的入栈/出栈操作
- UINavigationController的出栈和入栈
- 链栈的常用操作(初始化,入栈,出…
- C语言模拟顺序栈的创建、入栈、出栈操作
- 栈的操作(创建,入栈,出栈,清空,遍历等等)
- 数据结构顺序栈的创建、初始化、出栈、入栈及销毁
- 栈的创建 以及基本操作出栈 入栈,判空
- 数据结构栈的基本操作(创建、入栈、出栈、销毁)
- 数据结构之栈的初始化、创建、入栈、出栈、销毁-c++代码实现
- 链表实现队列的出队和入队,栈的入栈和出栈
- 入栈与出栈
- 入栈和出栈
- 入栈与出栈
- 入栈与出栈
- MIPI接口
- 请教如何实现SQL查询24小时内,当前时间之前20分钟的信息
- eclispe黑色配色方案,插件配置
- MAC下Myeclipse10 SVN插件安装
- 高通8x12平台 mipi屏 调试
- 链栈的创建、入栈、出栈
- 苹果IOS开发者账号总结
- 项目进度控制----感想
- SQL Server 中读取当前年月
- ACdream简单题目集
- 走进YY:听李学凌畅聊互联网本质
- JVM基础概念总结:数据类型、堆与栈
- 最新历史版本 :Android Bluetooth
- 《花儿与少年》轮值开启旅程多样性 姐姐登场吐槽