什么是堆栈 - 操作,c中堆栈的数组表示

在本教程中,我们学习堆栈数据结构其操作,C中的堆栈数组表示。 数据结构遵循执行操作的特定顺序。

什么是堆栈

堆叠是一种线性数据结构,其中物体就像一堆CD上的CD上的CD(其一端关闭,另一端打开)保持在彼此顶部。

想想你能用这么一堆CD做的事情: 
  • 把一个新的CD放在上面
  • 取出CD板
插入物(推) and delete(流行音乐) 操作仅在堆栈的一端发生。堆栈工作 Lifo(先前持续) 命令顶部的元素将删除第一个和顶尖指针表示堆栈的最后一个元素。 

以下是具有推送和流行操作的堆栈的简单表示: 

数据结构和算法 - 堆栈

堆栈操作

  1. 推(插入): 如果堆栈的顶部 top = n-1, 其中n =堆栈的大小,则堆栈是溢出,并且不可能插入。如果堆栈不会溢出,则指针顶部首先递增一个或 top = top + 1,然后插入元素。
  2. POP(删除): 如果堆栈的顶部 top = -1, 然后堆栈是下溢,不可能删除。如果堆栈没有下溢,则打印删除的元素以了解从堆栈中删除哪个元素,然后 top = top-1.
  3. 展示: 当堆栈中存在的任何元素或显示的元素或 顶部!= - 1 如果堆栈为空,则无法使用。

堆栈中的数组表示在c中 

using namespace std;
#include<iostream> //iostream as header
#define size 100

int stack[size],choice,n,top,item,i; //gobal variables declare

void push(); //functions declare
void pop();
void display();

int main()
{
    top=-1;
    cout<<"\n Enter the size of STACK[MAX=100]:";
    cin>>n;
    cout<<"\n\t 使用数组堆栈操作";
    cout<<"\n\t--------------------------------";
    cout<<"\n\t 1.PUSH\n\t 2.POP\n\t 3.DISPLAY\n\t 4.EXIT";
    while(1)
    {
        cout<<"\n Enter the Choice:";
        cin>>choice;
        switch(choice)
        {
            case 1:
            {
                push();
                break;
            }
            case 2:
            {
                pop();
                break;
            }
            case 3:
            {
                display();
                break;
            }
            case 4:
            {
                exit(0);
                break;
            }
            default:
            {
                printf ("\n\t Please Enter a Valid Choice(1/2/3/4)");
            }
                 
        }
    }
    return 0;
}
void push() //function definition 
{
    if(top>=n-1)
    {
        cout<<"\n\tSTACK is Overflow";
    }
    else
    {
        cout<<" Enter a value to be Pushed:";
        cin>>item;
        top++;
        stack[top]=item;
    }
}
void pop()
{
    if(top<=-1)
    {
        cout<<"\n\t Stack is Underflow";
    }
    else
    {
        cout<<"\n\t The Popped elements is"<=0)
    {
        cout<<"\n 堆栈中的元素 \n";
        for(i=top; i>=0; i--)
            cout<<"\n Stack[i]";
        cout<<"\n Press Next Choice";
    }
    else
    {
        cout<<"\n The STACK is empty";
    }
    
}

输出



 输入堆栈的大小[max = 100]:5

         使用数组堆栈操作
       -----------------------------------------
         1.PUSH
         2.POP
         3.DISPLAY
         4.EXIT
 Enter the Choice:3

 The STACK is empty
 Enter the Choice:2

         Stack is Underflow
 Enter the Choice:1
 输入要按下的值:10

 Enter the Choice:1
 输入要按下的值:20

 Enter the Choice:1
 输入要按下的值:30

 Enter the Choice:1
 输入要按下的值:40

 Enter the Choice:1
 输入要按下的值:50

 Enter the Choice:1

        STACK is Overflow
 Enter the Choice:3

 堆栈中的元素
50
40
30
20
10

 Press Next Choice
 Enter the Choice:2

         弹出元素为50
 Enter the Choice:2

         弹出元素为40
 Enter the Choice:3

 堆栈中的元素
30
20
10

 Press Next Choice
 Enter the Choice:2

         弹出元素为30
 Enter the Choice:2

         弹出的元素是20
 Enter the Choice:2

         弹出的元素是10
 Enter the Choice:2

         Stack is Underflow
 Enter the Choice:3

 The STACK is empty
 Enter the Choice:4


如果您有任何问题堆栈 - 操作,则C中堆栈的数组表示表明对您的问题进行评论。

快乐编码!!

暂无评论:

如果您有任何疑问,请告诉我

供电 博主.