猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
求助,请问该如何用函数实现入栈和出栈?
已知链栈Q,编写函数判断栈空,如果栈空则进行入栈操作,否则出栈并输出。(要求判断栈空、出栈、入栈用函数实现)
海绵宝宝撒
浏览 249
回答 1
1回答
慕村9548890
#ifndef Node_#define Node_template <class T> class LinkedStack;template <class T> class LinkedQueue;template <class T>class Node {friend LinkedStack<T>;friend LinkedQueue<T>;private:T data;Node<T> *link;};#endif// file lstack.h// linked stack#include "node.h"#include "xcept.h"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; // pointer to top node};template<class T>LinkedStack<T>::~LinkedStack(){// Stack destructor..Node<T> *next;while (top) {next = top->link;delete top;top = next;}}template<class T>bool LinkedStack<T>::IsFull() const{// Is the stack full?try {Node<T> *p = new Node<T>;delete p;return false;}catch (NoMem) {return true;}}template<class T>T LinkedStack<T>::Top() const{// Return top element.if (IsEmpty()) throw OutOfBounds();return top->data;}template<class T>LinkedStack<T>& LinkedStack<T>::Add(const T& x){// Add x to stack.Node<T> *p = new Node<T>;p->data = x;p->link = top;top = p;return *this;}template<class T>LinkedStack<T>& LinkedStack<T>::Delete(T& x){// Delete top element and put it in x.if (IsEmpty()) throw OutOfBounds();x = top->data;Node<T> *p = top;top = top->link;delete p;return *this;}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
OpenStack
openstack是什么?
1 回答
如何安装OpenStack Manila?
1 回答
Java
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续