设计一个栈,设计一个max()函数,求当前栈中的最大元素

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <iostream>
using namespace std;
#define MAXSIZE 256
typedef struct stack
{
    int top;
    int stack[MAXSIZE];
}Stack;
void initStack(Stack *s)
{
    s->top=0;
}
 
void push(Stack *s,int elem)
{
     if(s->top>MAXSIZE)
         cout<<"stack is full"<<endl;
     s->top++;
     s->stack[s->top]=elem;
}
void pop(Stack *s)
{
    if(s->top<=0)
      cout<<"stack is empty"<<endl;
     s->top--;
}
int max(Stack s)
{
       int maxNum;
       int temp;
       maxNum=s.stack[s.top];
       s.top--;
       cout<<maxNum<<endl;
       while(s.top>0)
         {
             temp=s.stack[s.top];
             cout<<temp<<endl;
             if(temp>maxNum)
                 maxNum=temp;
             pop(&s);
         }
       return maxNum;
}
 
int main()
{
     Stack s;
     int arr[]={3,6,1,8,12,5,9,21};
     initStack(&s);  //初始化栈
     for(int i=0;i<8;i++)            //入栈
        {
           push(&s,arr[i]);
        }
     cout<<"当前栈中最大元素为:"<<max(s)<<endl;
     return 0;
}

posted @   xshang  阅读(1228)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示