vc++栈的简单实现
生活随笔
收集整理的這篇文章主要介紹了
vc++栈的简单实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
棧的數(shù)據(jù)類型是先進后出
1 #ifndef __MYSTACK__ 2 #define __MYSTACK__ 3 #include <Windows.h> 4 typedef struct Node 5 { 6 int data; //數(shù)據(jù) 7 Node* next; //下一個節(jié)點 8 }NODE,*PNODE; 9 class Stack 10 { 11 public: 12 Stack(); 13 ~Stack(); 14 public: 15 int pop(); //返回這個出棧的數(shù)據(jù) 16 BOOL push(int pS); //接收入棧的數(shù)據(jù) 17 BOOL empty(); //判斷棧是否是null 如果是null返回TRUE 18 int treaverse(); //遍歷所有數(shù)據(jù) 19 20 private: 21 PNODE m_pTop; //棧頂 22 PNODE m_pBottom; //棧底 23 }; 24 Stack::Stack() 25 { 26 m_pTop = new NODE; 27 if(!m_pTop)return; 28 m_pTop->next = NULL; //下一個節(jié)點等于null 29 m_pBottom = m_pTop; 30 } 31 Stack::~Stack() 32 { 33 //析構(gòu) 34 if (empty()) 35 { 36 delete m_pTop; 37 }else 38 { 39 PNODE p = m_pTop; 40 while (p!=m_pBottom) 41 { 42 p = m_pTop->next; 43 delete m_pTop; 44 m_pTop = p; 45 } 46 delete m_pBottom; 47 } 48 49 50 } 51 int Stack::push(int pS) 52 { 53 PNODE pNext = new NODE; 54 if(!pNext)return -1; 55 ZeroMemory(pNext,sizeof(NODE)); 56 pNext->data = pS; //傳進來的參數(shù) 57 pNext->next = m_pTop; 58 m_pTop = pNext; 59 return true; 60 } 61 BOOL Stack::empty() 62 { 63 if (m_pTop == m_pBottom) 64 return true; 65 else 66 return false; 67 } 68 int Stack::pop() 69 { 70 int temp = NULL; 71 if (empty()) 72 return -1; 73 PNODE p = m_pTop->next; 74 temp = m_pTop->data; //獲取到的數(shù)據(jù) 75 delete m_pTop; 76 m_pTop = p; 77 return temp; 78 } 79 int Stack::treaverse() 80 { 81 if(empty())return -1; 82 PNODE p = m_pTop; 83 while(p!=m_pBottom) 84 { 85 printf("%d\r\n",p->data); 86 p = p->next; 87 } 88 } 89 #endif //__MYSTACK__?
轉(zhuǎn)載于:https://www.cnblogs.com/guolongzheng/p/7283750.html
總結(jié)
以上是生活随笔為你收集整理的vc++栈的简单实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android反编译 -- 错误代码还原
- 下一篇: C++继承权限