zoukankan      html  css  js  c++  java
  • 找水王

    一 题目要求:

    三人行设计了一个灌水论坛。信息学院的学生都喜欢在上面交流灌水,传说在论坛上有一个水王,他不但喜欢发帖,还会回复其他ID发的每个帖子。坊间风闻该水王发帖的数目超过了帖子数目的一半。如果你有一张该论坛的帖子列表,其中帖子的作者ID也在其中,你能快速的找到这个传说中的水王吗?

    二 设计思路:

    水王的帖子数量超过了一半,可以将每两个不同的ID号进行比较消除。可以利用栈的思想,先将第一个ID号压入栈,再将第二个ID号压入栈,两个进行比较,不同的话则把第二个ID号弹出栈,然后再接着将第三个ID号压入栈,在将其与第一个对比,相同则留,不同则弹出栈,以此类推,最后栈里剩下的就是水王的ID。

    三 程序代码:

    //2016/5/19     二十划生
    //找水王
    #include<iostream>
    using namespace std;
    #define MAXSIZE 100
    
    typedef struct
    {
        int *base;
        int *top;
        int stacksize;
    }SqStack;
    
    int InitStack(SqStack &S)
    {
        S.base=new int[MAXSIZE];
        if(!S.base)
            exit(OVERFLOW);
        S.top=S.base;
        S.stacksize=MAXSIZE;
        return 0;
    }
    
    
    int main()
    {
        int ID[MAXSIZE],k=0,n;
        cout<<"请输入所有的ID号:(以-1结束)"<<endl;
        for(int j=0;;j++)
        {    
            cin>>n;
            if(n==-1)
                break;
        
            ID[j]=n;
            k++;
        }
        int e;
        SqStack S;
        InitStack(S);
        k=k-1;
        for(int i=0;i<k;i++)
        {
            
            if(S.top==S.base)
            {
                *S.top++=ID[i];
            }
            int num=*(S.top-1);
            if(num!=ID[i+1]&&i<k-1)
            {
                e=*--S.top;
                i++;
            }
            else
            {
            *S.top++=ID[i+1];
            }
            if(i==k-2)
            {
                num=*(S.top-1);
                cout<<"水王的Id号为:"<<endl;
                cout<<num<<endl;
            }
        }
        return 0;
    }

    四 运行结果:

    五 心得体会:

    在这次编程的时候用到了堆栈的知识,由于长时间没用过都有些遗忘,在查阅了以前的数据结构书上的相关算法才实现。这就其实我们要时刻复习已经学习过的知识。

  • 相关阅读:
    pycharm如何快速替换代码中的字符
    tcp三次握手四次挥手那些事
    Python之异常处理
    Python之单例模式
    ApplicationContext
    ContextLoaderListener作用详解
    DispatcherServlet--Spring的前置控制器作用简介
    web.xml中servlet的配置
    Hibernate各种主键生成策略与配置详解【附1--<generator class="foreign">】
    java.util.ConcurrentModificationException 解决办法(转)
  • 原文地址:https://www.cnblogs.com/wangzongze/p/5510492.html
Copyright © 2011-2022 走看看