// vptr.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>using namespace std;template <typename T>struct Node{T data;Node<T> *next;};template <typename T>class LinkStack{public:LinkStack(int size);~LinkStack();bool isEmpty();bool isFull();int getCount();int getSize();T top();T pop();bool push(T data);private:Node<T> *ptop;int size;int count;};template <typename T>LinkStack<T>::LinkStack(int size){count = 0;this->size = size;ptop = NULL;}template <typename T>LinkStack<T>::~LinkStack(){if(ptop)delete ptop;ptop = NULL;}template <typename T>int LinkStack<T>::getCount(){return count;}template <typename T>int LinkStack<T>::getSize(){return size;}template <typename T>bool LinkStack<T>::isEmpty(){return count == 0;}template <typename T>bool LinkStack<T>::isFull(){return count == size;}template <typename T>T LinkStack<T>::top(){if(!ptop)return (T)-1;return ptop->data;}template <typename T>T LinkStack<T>::pop(){if ((!ptop) || (count == 0))return (T)-1;count--;T d = ptop->data;Node<T> *tmp = ptop;ptop = ptop->next;return d;}template <typename T>bool LinkStack<T>::push(T data){if(count == size)return false;Node<T> *newnode = new Node<T>();newnode->data = data;newnode->next = NULL;if(ptop){newnode->next = ptop;ptop = newnode;}else{ptop = newnode;}count++;return true;}int main(void) {LinkStack<int> linkstack(10); ;for(int i=0; i<10; i++){linkstack.push(i);}cout<<"size:"<<linkstack.getCount()<<endl;while(!linkstack.isEmpty()){printf("item = %d\n", linkstack.pop());}system("pause");return 0;}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。