用链表实现栈
来源:互联网 发布:php class w3c 编辑:程序博客网 时间:2024/06/05 16:45
用一般链表创建的逆向思维就可以。一般链表创建是新建一个节点作为已有节点的后续节点,而这里是新建一个节点作为已有节点的前驱节点。所以最新创建的节点在链表开头,即栈顶位置。
注意Push、Pop和DeleteStack都会改变栈顶指针,所以必须传引用
StackByList.h
#ifndef _STACK_Htypedef struct StackByList* PtrStackByList;typedef struct StackByList* TopOfStackByList;void Push(int X, TopOfStackByList &S);int Pop(TopOfStackByList &S);int Top(TopOfStackByList S);bool IsEmpty(TopOfStackByList S);void DeleteStack(TopOfStackByList &S);#endifstruct StackByList{int m_value;PtrStackByList m_next;};
StackByList.cpp
#include "StdAfx.h"#include "StackByList.h"void Push(int X, TopOfStackByList &S){PtrStackByList P = NULL;P = new StackByList();P->m_value = X;P->m_next = S;S = P;}int Pop(TopOfStackByList &S){if (S == NULL)throw "Empty stack!";int top = 0;top = S->m_value;PtrStackByList P = S->m_next;delete S;S = P;return top;}int Top(TopOfStackByList S){if (S == NULL)throw "Empty stack!";return S->m_value;}bool IsEmpty(TopOfStackByList S){if (S == NULL)return true;elsereturn false;}void DeleteStack(TopOfStackByList &S){while (S)Pop(S);}
0 0
- 用链表实现栈C++实现源码
- 用链表实现栈
- 用链表实现的栈
- 用链表实现栈
- 用链表实现栈
- 用链表实现栈
- 用链表实现栈
- 用链表实现栈
- 用链表实现栈
- 栈 stack 用链表实现
- 用链表实现栈功能
- 用链表实现栈
- 用链表实现栈
- 用链表实现栈
- 用链表实现栈和队列
- 用链表实现堆栈--链式栈
- php 用链表实现一个栈
- 类中实现简单的栈(用链表结构实现)
- 回收站的文件被杀毒软件清空了怎么办
- C++工厂模式总结(简易版反射)
- CSS样式表
- VS2010中使用TinyXML
- 【数据结构】算法复杂度
- 用链表实现栈
- spring注解配置详解
- POJ - 1005 I Think I Need a Houseboat
- 自由拖动的div层
- Java Swing界面编程(15)---JScrollPane
- iOS7中类似iOS6效果的Grouped TableView
- php时间函数大锦集
- 武当山自由行--你的不二之选
- GitHub上README写法暨GFM语法解读