说来惭愧,这一不更新数据结构就是这么长时间,这么搞9月之前怎么完成任务?!执行力还是低了点,以后还是像大牛们学习,争取一天一篇。
链表形式的堆栈早写好了,只是火车车厢重排问题一直没解决,所以暂时只上堆栈的代码,车厢问题调试中。
/*之前的顺序栈是使用顺序表的方式简历,同样也可以使用链表的形式描述
而链表的描述也可以拓展Chain,也可以自己定义,再次直接自己定义
*/
#ifndef LinkedStack_H_
#define LinkedStack_H_
#include<iostream>
template<class T>class LinkedStack;
template<class T>
class Node{
friend class LinkedStack<T>;
private:
T data;
Node<T> *link;
};
template<class T>
class LinkedStack{
public:
LinkedStack() { top = 0; }
~LinkedStack();
bool IsEmpty() const { return top == 0;}
bool IsFull() const;
T Top() const;
LinkedStack<T>& Add(const T& x);
LinkedStack<T>& Delete(T& x);
private:
Node<T> *top;//指向栈顶节点
};
template<class T>
LinkedStack<T>::~LinkedStack(){
//析构函数
Node<T> *next;
while (top){
next = top->l