数据结构锐格实验二:栈和队列的有关操作

本文通过一系列编程题目介绍了如何使用顺序存储和链式存储实现栈和队列的操作,包括初始化、入栈、出栈、入队、出队。同时,展示了如何利用栈进行数制转换,并利用队列打印杨辉三角。输入输出示例详细展示了各种操作的结果。
摘要由CSDN通过智能技术生成

8563

題目內容:
试编写算法,采用顺序存储实现栈的初始化、入栈、出栈操作。要求输入整形数据,输入0表示结束(0不存储在栈中)。

输入输出说明:
输入:1 2 3 4 5 6 7 8 9 0
输出:9 8 7 6 5 4 3 2 1

#include <bits/stdc++.h>
#define Maxsize 1000 
using namespace std;

typedef struct
{
   
    int data[Maxsize];
    int top;
}Sqstack;
void init(Sqstack &S)//初始化栈
{
   //构造一个空栈
    S.top=-1;
}
int push(int x,Sqstack &S)
{
   
    if(S.top==Maxsize-1)
       {
    cout<<"FULL"<<endl; return 0;}
       S.top++;
       //cout<<S.top<<" ";
       S.data[S.top]=x;
       return 1;
}
int pop(Sqstack &S)
{
   
    if(S.top==-1)
        {
   cout<<"NULL"<<endl; return 0;} 
        
       // x=S.data[S.top];
        while(S.top!=-1)
        {
   
            cout<<S.data[S.top]<<" ";
            S.top--;
        }
return 1;
}
int main ()
{
   
    Sqstack S;
    init(S);
    int x;
    while (cin>>x&&x)
    {
   
        push(x,S);
    }
    pop(S);
    return 0;
}

8562

題目內容:
试编写算法,采用链式存储实现栈的初始化、入栈、出栈操作。要求输入整形数据,输入0表示结束(0不存储在栈中)。

输入输出说明:
输入:1 2 3 4 5 6 7 8 9 0 输出:9 8 7 6 5 4 3 2 1
或者输入:11 22 33 44 55 66 77 88 99 0
输出:99 88 77 66 55 44 33 22 11

#include <bits/stdc++.h>
using namespace std;
typedef struct StackNode
{
   
    int data;
    struct StackNode *next;
}StackNode,*Linkstack;                     //栈只在栈顶操作,所以不设头结点
void LinkstackInit(Linkstack &top)
{
                                             //构造空栈,栈顶指针为top
    top=NULL;
}
void push(int x,Linkstack &top)
{
   
    Linkstack S;
    S=new StackNode
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值