zoukankan      html  css  js  c++  java
  • 博客作业03--栈和队列

    1.学习总结

    1.1 我对本周所学的逻辑结构、栈、队列、存储结构等的理解。

    • 三者都是逻辑结构,各有特性。线性表是一个含有n个元素的有序序列,形成线性结构。这种结构只有一个“第一个元素”和一个“最后一个元素”,除“第一个元素”之外每个元素都有一个前驱,除“最后一个元素”之外每个元素都有一个后继。栈只允许在栈顶进行存取,有“后进先出”的特性。队列只允许在队尾存,在队首取,有“先进先出”的特性。三种结构有不同的应用。

    栈:


    队列:

    1.2思维导图

    2.PTA实验作业

    2.1 题目1:jmu-字符串是否对称

    2.2 设计思路

    定义变量i,ch,指针变量st.
    建立栈st,把输入的字符串入栈,在利用栈的“先进后出”的特性,判断正反是否相等。
    不等销毁栈,返回0,相等也销毁栈,返回1。

    2.3 代码截图

    2.4 PTA提交列表说明

    2.1 题目2:jmu-ds-舞伴问题

    2.2 设计思路

    首先定义一系列辅助变量int i,t,j,flag;
    for i=0 to i=num-1;
    先判断dancer[i].sex,再根据sex进入不同的队列
    for i=0 to i=num-1;
    令flag=0;判断dancer[i].sex,
    如果是“F”,就利用j变量按循序找到第一个“M”的舞伴,如果是“M”,就利用j变量按循序找到第一个“F”的舞伴,找到flag=1,如果找到就输出俩者的名字。
    再利用flag,判断匹配是否成功,成功就删除dancer[i]中的这俩者,并且将front++(这个纯属是为了计算没有舞伴的人数,所以没管里面的data删除是否正确,有点侥幸吧!)。

    2.3 代码截图


    2.4 PTA提交列表说明

    2.1 题目3: jmu-报数游戏

    2.2 设计思路

    定义变量num,sum;//sum用来存放m的初值。
    判断m是否越界,是输出error!
    否,利用m来找出队列中对应的元素,把它放在队首。
    判断队列中的元素个数,把队首元素出对,并输出。

    2.3 代码截图

    2.4 PTA提交列表说明

    3.题目集的.PTA最后排名

    3.1 栈PTA排名

    3.2 队列PTA排名

    3.3 我的总分:100+105=205.

    4. 阅读代码

    • lower_bound这个函数的代码是我无意中发现的,觉得很精简,是利用二分法写出的代码。函数ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val)功能:返回一个有序序列[first, last)中第一个值【大于或等于】val的元素的位置。有了这个函数使得在写7-4 列车调度的题时,大大缩减了代码量。
    • 同时介绍ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val)功能:返回一个有序序列[first, last)中第一个值【大于】val的元素的位置。

    5. 代码Git提交记录截图

  • 相关阅读:
    多线程编程(14) 多线程同步之 WaitableTimer (等待定时器对象)
    多线程编程(17) 多线程同步之 WaitableTimer (等待定时器对象)[续三]
    多线程编程(13) 多线程同步之 Event (事件对象)
    一个关于 absolute 关键字的小练习
    [新功能]在个人Blog页面显示最新评论
    asp.net页面中hmtl注释的问题
    [征询意见]博客园准备租用更好的服务器
    [公告]博客园分页浏览功能改进
    [公告]博客园新服务器测试
    [公告]博客园建立了人才求职区
  • 原文地址:https://www.cnblogs.com/bigll666/p/8834920.html
Copyright © 2011-2022 走看看