如何为C++堆栈插入新元素

在C++中进行C++堆栈处理时,首先要保证进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据,按照顺序这么一一的读取出来数据,关键的是请大家要记住一些堆栈术语。

在编写代码时,堆栈是最常用的数据结构。它的概念简单,编写也比较简单。有这么一个情况,桌子上有堆成一堆的5本书,你想增加一本。应该怎么做?只要把书放在顶端就可以了。

如果你想从这堆书中取出第3本呢?你只要一本接着一本把书移到顶端,直到第3本书处在顶端。然后取走第3本书,并使其他处在顶端。你已经注意到我使用顶端这个词语。没错,顶端(顶)对于堆栈至关重要的。C++堆栈只允许从顶端加入数据,出/退也是从顶。就是这么简单。

那什么情况使用堆栈?堆栈被用在每一个进程中。每一个进程都一个堆栈,数据和地址从堆栈中被取出来/添加进来。顶规则在这里也符合。ESP Register 添加一个指针,指向顶。

无论如何,解释进程中的堆栈怎么工作,已超出本教程范围,让我们开始写数据结构。在开始之前,请大家记住一些堆栈术语。向C++堆栈插入新元素成为入,从堆栈中删除元素成为出

以下是引用片段:

#include    


using namespace std;   


#define MAX 10 // MAXIMUM STACK CONTENT   


class stack   


{   


private:   


int arr[MAX]; // Contains all the Data   


int top; //Contains location of Topmost Data pushed onto Stack   


public:   


stack() //Constructor   


{   



top=-1; //Sets the Top Location to -1 indicating an empty stack   



}   


void push(int a) // Push ie. Add Value Function   


{   


top++; // increment to by 1   


if(top    


{   


arr[top]=a; //If Stack is Vacant store Value in Array   


}   


else   


{   



cout<<"STACK FULL!!"<    



top--;   


}   


}   


int pop() // Delete Item. Returns the deleted item   


{   



if(top==-1)   



{   



cout<<"STACK IS EMPTY!!!"<    



return NULL;   


}   


else   


{   



int data=arr[top]; //Set Topmost Value in data   



arr[top]=NULL; //Set Original Location to NULL   


top--; // Decrement top by 1   


return data; // Return deleted item   


}   


}   


};   


int main()   


{   


stack a;   


a.push(3);   



cout<<"3 is Pushed\n";   



a.push(10);   



cout<<"10 is Pushed\n";   



a.push(1);   



cout<<"1 is Pushed\n\n";   




cout<    




cout<    




cout<    



return 0;   


} 

相关推荐