zoukankan      html  css  js  c++  java
  • 课堂练习,找水王(附第十一周进度条)

    设计思路:建立一个数组储存数据,用指针建立一个双向链,用一个循环一次输出第一数组到链中,如果输出的数和储存在链中的最后一个数相同则存入链中,如果不同,链中消去一个数,如果链中没数了,则存入链中。直到循环完成。输出链中的第一个数。

    代码实现:

    #include<iostream>
    #include<string>
    using namespace std;
    
    int main()
    {
        typedef struct list
        {
            string data;
            struct list *prior;
            struct list *next;
    
        }list, *llist;
        
        string a[100];
        llist l,p,r;
        l=new list;
        p = l;
        r = l;
        l->data = "";
        for (int i = 0; i < 100; i++)
        {
            a[i] = 'a';
        }
        for (int i = 0; i < 10; i++)
        {
            a[i] = 'b';
        }//设置测试数据
        for (int i = 1; i < 100; i++)
        {
            if (l->data == "")//如果链头为空,则插入数据
            {
                l->data = a[i];
                
            }
            else//链头不空
            {
                if (r->data == a[i])//链尾和输入的数据一样,把数据插入链
                {
                    p = new list;
                    p->data = a[i];
                    r->next = p;
                    p->prior = r;
                    r = p;
                }
                else//输入数据不一样,
                {
                    if (r == l)//若是链头,设为空
                    {
                        l->data ="";
                        l->next = NULL;
                    }
                    else//删除链中的最后一个
                    {
                        p = r->prior;
                        delete r;
                        r = p;
                    }
                }
            }
        }
        cout <<"水王是"<< l->data<<endl;
    }

    截图:

     

    心得:

    这个算法的雏形是老师说的两两相消,但是两两相消的话有些情况比如,a,a,b,b,a,a不能消,但是累计相消的话,就可以。

    日期任务 听课 编写程序 阅读课本 准备考试     日统计   日期 开始时间 结束时间 中断时间 净时间 活动 备注     日期 编号 引入阶段 排除阶段 修复时间 描述  
    周一 100           100   5月9日 8:00 9:50 10m 100m 上课                    
    周二                 5月10日                              
    周三                 5月11日                              
    周四                 5月12日                              
    周五   2h         2h   5月13日 14:20 16:30   2h 写博客                    
    周六                 5月14日                              
    周日                 5月15日                              
                                                     
                                                     
  • 相关阅读:
    17、静态链表
    16、约瑟夫问题
    15、循环链表
    9、插入排序
    14、企业链表
    13、单向链表
    12、顺序表的顺序存储结构
    11、归并排序
    10、快速排序
    原型模式
  • 原文地址:https://www.cnblogs.com/zuhaoran/p/5509117.html
Copyright © 2011-2022 走看看