课堂练习,找水王(附第十一周进度条)

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

代码实现:

#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日                              
                                                 
                                                 
原文地址:https://www.cnblogs.com/zuhaoran/p/5509117.html