精华内容
下载资源
问答
  • 栈和队列

    2020-01-15 18:18:49
    栈和队列栈队列如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特功能,丰富你的文章...

    栈:先进后出,删除与加入均在栈顶操作
    栈的特性: 最先放入堆栈中的内容最后被拿出来,最后放入堆栈中的内容最先被拿出来, 被称为先进后出、后进先出。
    PUSH:在栈的顶部加入一 个元素。
    POP:在栈顶部移去一个元素, 并将栈的大小减一。
    如下图
    在这里插入图片描述)

    STL 栈

    #include<stack> //头文件
    stack<int> st;//定义一个存放数据类型为int 的栈 <>里也可以放结构体
    st.push(X)//X为要压入栈的元素
    st.empty()//判断栈是否为空,为空返回1
    st.pop()//删除栈顶元素,删除前一般要判断栈是否为空,不然会出错
    st.top()//返回栈顶元素
    st.size()//返回栈中元素个数
    

    队列

    也是一种线性表,和栈相反遵从的是先进先出,先进队列的元素先出队列,和排队一样先来先得
    PUSH:在队列尾部加入一 个元素。
    POP:移除队首元, 并将队列的大小减一。
    FRONT:返回队首元素
    在这里插入图片描述
    STL 队列

    #include<queue>//头文件
    queue<int> qu;//定义一个队列,<>内为存储的数据的类型,可以为结构体
    qu.push(X);//X为添加的元素
    qu.front();//返回队首
    qu.back();//返回队尾
    qu.empty();//判断队列是否为空
    qu.pop();//删除队首元素,同样删除前一般要判断队列是否为空
    qu.size();//返回队列元素个数
    
    
    

    优先队列

    相比普通队列,多了个优先度,意思就是队列里优先度高的排在前面,比如可以是数字的大小,STL里的优先队列默认是按大的优先,意味着大的数排在前面,自动排好序。其他操作都和普通队列一样;
    在这里插入图片描述
    STL优先队列

    #include<queue>//头文件
    priority_queue<int> qu;//优先队列的定义默认大的在前
    priority_queue<int,vector<int>,greater<int> > qu;//小的在前,至于什么意思可以自己查查
    qu.push(X);
    qu.top();//返回队首元素和普通队列不一样
    qu.pop();
    qu.empty();
    qu.size();
    

    如果优先队列的数据类型是结构体,则需要定义排序方式,比如重载运算符,或者排序函数,
    参考https://blog.csdn.net/Akatsuki__Itachi/article/details/84142336

    展开全文
  • 栈和队列-

    2018-04-07 13:47:00
    2.2 设计思路(伪代码或流程图) 1.7-2 符号配对 2.7-3 表达式转换 3.7-2 银行业务队列简单模拟 2.3 代码截图 1.7-2 符号配对 2.7-3 表达式转换 3.7-2 银行业务队列简单模拟 2.4 PTA提交列...

    1.学习总结

    1232215-20180407124913854-1586709116.png

    2.PTA实验作业

    2.1 题目

    1.7-2 符号配对

    2.7-3 表达式转换

    3.7-2 银行业务队列简单模拟

    2.2 设计思路(伪代码或流程图)

    1.7-2 符号配对

    1232215-20180407131407233-469035228.png
    1232215-20180407131432801-879692609.png
    1232215-20180407131451230-1574418681.png

    2.7-3 表达式转换

    1232215-20180407115844249-978981569.png
    1232215-20180407115937202-1514023842.png
    1232215-20180407115958871-2046017780.png

    3.7-2 银行业务队列简单模拟

    1232215-20180407125655620-1478332375.png
    1232215-20180407125717656-1365535492.png

    2.3 代码截图

    1.7-2 符号配对

    1232215-20180407104027114-1021250053.png
    1232215-20180407104101060-68146894.png
    1232215-20180407104226276-1336926141.png
    1232215-20180407104254950-1090189479.png

    2.7-3 表达式转换

    1232215-20180407104340195-1471111594.png
    1232215-20180407104410389-98271008.png
    1232215-20180407104440667-1929224725.png
    1232215-20180407104501115-955969286.png

    3.7-2 银行业务队列简单模拟

    1232215-20180407104629558-1417867938.png
    1232215-20180407104657728-1413827151.png

    2.4 PTA提交列表说明。

    1.7-2 符号配对

    1232215-20180407105506272-1061988679.png

    最初没使用c++编译器

    1232215-20180407105727787-66968855.png

    审题不清,这题最大难点在于注释符号的配对,需将其转化成其他符号,否则因其特性可能让语句被注释掉(有点类似于数学中的换元法)

    1232215-20180407110128814-1968577178.png

    2.7-3 表达式转换

    1232215-20180407110227965-93070672.png

    编译器使用错误

    1232215-20180407110602480-2077920673.png

    格式错误,空格输出不正确

    1232215-20180407110659711-1135075621.png

    3.7-2 银行业务队列简单模拟

    1232215-20180407110848568-865335795.png

    编译器使用错误

    1232215-20180407111003328-1094977112.png

    此时思路已经清晰但格式出现问题且范例只能输出一半,具体原因不清

    1232215-20180407111305155-1374377593.png

    格式正确但范例仍错误

    1232215-20180407111448441-212181397.png

    将while和if语句进行调整,改善架构,最终正确

    3.1 栈PTA排名

    1232215-20180407112103062-240044790.png

    3.2 队列PTA排名

    1232215-20180407112408952-139250539.png

    3.3 我的总分:

    pta:230分

    自评:2.5分

    4. 阅读代码

    1232215-20180407132458979-1333291580.png
    1232215-20180407132601565-1106791327.png
    1232215-20180407132631116-217780997.png
    1232215-20180407132718774-1643860996.png
    1232215-20180407132756303-2034816690.png

    功能:利用栈做模拟计算器计算,具有加减乘除功能

    优点:将运算符号优先级转化为数字,使其在运算中更好的区分出运算顺序

    5. 代码Git提交记录截图

    1232215-20180407115359145-1625977819.png

    转载于:https://www.cnblogs.com/lizhiting/p/8727277.html

    展开全文
  • 实验三 栈和队列 3.1实验目的: (1) 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作在栈的顺序存储结构和链式存储结构上的实现; (2) 熟悉队列的特点(先进先出)及队列的基本操作...
  • 第03次作业-栈和队列

    2018-04-07 19:46:00
    到现在为止,已经学习了数据结构绪论、线性表、栈和队列等知识点。尝试使用思维导图将这些碎片化的概念、知识点组织起来。使用Xmind画出知识点及知识点之间的联系。 2.PTA实验作业 2.1 题目1:7-2银行业务...

    1.学习总结

    到现在为止,已经学习了数据结构绪论、线性表、栈和队列等知识点。尝试使用思维导图将这些碎片化的概念、知识点组织起来。使用Xmind画出知识点及知识点之间的联系。


     

    2.PTA实验作业


    2.1 题目1:7-2 银行业务队列简单模拟(25 分)

    2.2 设计思路(伪代码或流程图)

     

     

     

    2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

     

    2.4 PTA提交列表说明。

     

    错误点:直接用仅带头节点的单链表,导致不好判断队列是否为空,不好进行入队出队操作

    解决方法:使用链队节点,该链队节点包含头指针和尾指针两部分。

     

     

     

    错误点:格式错误

    解决方法:改变了b队人多全部出队的语句的顺序,解决了第二个的格式错误 ;

                      进行了空格出现位置的改正,解决了第四个的格式错误。

               

     

     

    2.1 题目2:7-1 jmu-字符串是否对称(20 分)

    2.2 设计思路(伪代码或流程图)

     

     

    2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

     

    2.4 PTA提交列表说明。

     

     

    错误点:在序列逆序入栈时,把字符串下标 i 从字符串尾开始增加,访问未知空间,导致进入栈的是一个未知数

    解决方法:将字符串下标 i 从字符尾的下标开始减小

     

     

     

    2.1 题目3:7-4(选做) 列车调度

    2.2 设计思路(伪代码或流程图)

     

    2.3 代码截图(注意,截图、截图、截图。代码不要粘贴博客上。不用用···语法去渲染)

     

    2.4 PTA提交列表说明。

    错误点:没有考虑到最大n的情况

    解决方法:将最大n的情况单独讨论

     

     

    错误点:由于语句位置的错误,导致结果出现偏差

    解决方法:改变语句的位置

     

     

     


    3.截图本周题目集的PTA最后排名

    3.1 栈PTA排名

     

    3.2 队列PTA排名

     

    3.3 我的总分:

            总分2.5   

    4. 阅读代码

    7-4(选做) 列车厢调度

    优点:利用三个栈代表三个轨道,将每个栈的栈顶元素同2栈的元素比较,若匹配则记录相应轨迹,思路清晰。

    整体思路:

    1. 轨道1的元素恰好为轨道2的元素,则说明1-->2;否则进入轨道3,即1-- >3;

    2. 轨道3的元素恰好为轨道2的元素,则说明3-->2;                                              

    最后判断轨道3是否还有元素,若有,则将轨道3中元素全部进入轨道2,即3-->2

    5. 代码Git提交记录截图

     

    转载于:https://www.cnblogs.com/hexintong99/p/8684982.html

    展开全文
  • 博客作业03--栈和队列

    2018-04-14 20:06:00
    一、学习总结 1.1 关键词 队列、线性表、逻辑...1)设计思路(伪代码或流程图) #略过 Stack( char 类型)的建立、进栈、出栈 #主要功能代码解释: while ( Fline[i] 存在的时候,将 Fline 的元素 Tline...

    一、学习总结

    1.1 关键词

    • 栈、队列、线性表、逻辑结构、存储结构、链表、单链表、双链表、循环链表、顺序表、有序表。

    1.2 关键词思维导图

    1235979-20180417103513272-602073985.png

    二、PTA实验作业

    1、7-4(栈PTA)

    1)设计思路(伪代码或流程图)

    #略过栈 Stack( char 类型)的建立、进栈、出栈
    #主要功能代码解释:
    
    while ( Fline[i] 存在的时候,将 Fline 的元素和 Tline 的元素挨个比较 )// Fline :1号轨道的车厢从左到右的顺序,Tline :车厢停到2号轨道的进道顺序
        if  ( Fline[i] 的值等于 Tline[j] 的值 )
                表示从 1 轨道到 2 轨道,在二维数组 way 的相应行数记下 1 与 2 ;   // way :二维数组,记录路径
        else if  ( 栈不为空且栈顶元素等于 Tline[j] )
                表示从 3 轨道到 2 轨道,把该元素出栈,way 数组记录 3 、 2 ;
        else 
                到这里说明要进到 3 轨道,将 Fline[i] 入栈,way 数组记录 1 、3 ;
    end while
    
    while  ( 栈不为空 )
                取栈顶元素挨个与 Tline 比较,如果不相等就输出"Are you kidding me?"并结束循环,不输出任何数据( flag 置为 0 ),如果相等就用 way 数组记录路径;
    end while
    
    if  ( flag 为真)
             按格式循环输出 way 数组的内容
    end if

    2)代码截图

    1235979-20180414133510148-606736899.png
    1235979-20180414133536181-1714211162.png
    1235979-20180414133552622-294506406.png

    3)PTA提交列表说明

    1235979-20180414141806394-1077631761.png

    • 问题1:编译错误
    • 原因:我使用C++方式,编译器没看到是C的
    • 问题2:1235979-20180414142516942-2065984474.png
    • 原因:在写的时候漏掉了出栈步骤,导致元素一直在栈顶,出现了错误,这一点我是在运行测试样例//ABCDEFGHIJKLMNOPQRSTUVWXYZ//IJKLMNHGFEDCBAOPQRSTUVWXYZ,对比自己代码与别人正确代码的结果之后才发现的。

    2、7-3(栈PTA)

    1)设计思路(伪代码或流程图)

    #主要功能函数 trans ,输入的参数为 exp 数组和 post 数组
    
    for  i=0  to  exp[i+1]='\0'        //遍历 exp 数组。
            若 exp[i] 是数字或 '.' ,将从 exp[i] 开始到符号之前的数值放到 post 数组里,加上一个空格;    // exp 存放中缀表达式,post 存放后缀表达式
            若 exp[i] 是 '(' ,将其进栈,是 ')' ,栈顶元素循环出栈,若出栈元素不是 '(' ,则进入 post 数组里,若是就结束循环;
            若 exp[i] 是 '+' 或 '-' ,若是 exp 数组第一位元素或者是其前一位元素为 '(' 且是负号,就进到 post 数组里,然后进入下一次循环;若不是就将栈的元素循环出栈到 post 数组,加上空格,直到栈顶元素为 '(' ,然后再将 exp[i] 进栈;
            若 exp[i] 是 '/' 或 '*' ,如果栈顶元素是 '/' 或 '*' ,循环给 post 数组,加上空格,直到栈顶元素不是 '/' 或 '*' 为止,然后 exp[i] 进栈。
    end for
    
    while 栈不为空
            栈顶元素出栈,进到 post 数组里,加上空格。
    end while
    
    把 post 数组的末尾空格改为结束符 '\0' ;

    2)代码截图

    1235979-20180414152155076-1100154502.png
    1235979-20180414152210698-8925123.png
    1235979-20180414152226323-1738262814.png
    1235979-20180414152242365-487563741.png
    1235979-20180414152308675-1448885474.png
    1235979-20180414152320634-749863762.png

    3)PTA提交列表说明

    1235979-20180414152503424-614285718.png

    • 问题1: 运算数超过1位整数且有非整数出现(段错误)
    • 原因:就是非整数的问题(1.5之类),我的原始代码在运算类似“1.2/7”的时候就崩溃了,因为当读到 '.' 的时候会造成死循环,进而将 post 数组写满。

    • 问题2:只有1个数字(格式错误)
    • 原因: post 数组的下标 j 的运用问题,在 j 加一之后才添上终止符,没有覆盖末尾的空格。

    • 问题3:运算数前有正负号(答案错误)
    • 原因:这个是我没想到,一般来说只要输出负号就行,我则让正负号都正常输出了。

    3、7-4(队列PTA)

    1)设计思路(伪代码或流程图)

    #在正常的队列结构体里多加了一个 int 类型的 cnt 变量表示队列的元素个数。
    #略过队列的出队和入队、建立操作,在建立队列同时输入数据。
    
    #void Binary_Search(int e,int a[],int cnt) ,比正常的二分查找法多了一个 a[right]=e 的步骤
    
    #主要功能函数 Scheduling ,输入参数为队列 q 
    
    while ( 队列不为空 )
            出队一个元素
            若是第一个元素即 cnt = 0 ,出队的元素就进到数组 a 里, cnt 递增。//cnt为计数器
            不然,若 a 数组的前一位元素小于出队的元素,将此元素存进 a 数组,不小于就二分查找找到比它大的最小数,并替换。// a 数组为车的轨道
    end while
    
    输出 cnt ;

    2)代码截图

    1235979-20180414164225149-898826662.png
    1235979-20180414164247070-1109644812.png
    1235979-20180414164305098-2023067008.png
    1235979-20180414164317639-735945415.png

    3)PTA提交列表说明

    1235979-20180414183042639-1115480194.png

    • 问题1:编译错误
    • 原因:编译器没改就提交的原因。
    • 问题2: 最小N(答案错误)、sample 等价,卡找简单递减序列的算法(答案错误)
    • 原因:原始的代码没有在出队完成之后修改 n 的值( 那时用的是 cnt1+cnt2==n 的判断 ),修改完之后这两个测试点都过了。但第二个测试点据我认为应该是我原始的代码只有一层循环,所以时间复杂度过了。
    • 问题3:最大N,以10000为单位逆序(答案错误)、最大N,正序(答案错误)
    • 原因:由于是最大N,没有办法去测试,所以去网上搜索了一下,据说是要用二分查找法才能通过,然后就把我自己的代码重新修改了一下,确保题目给出的测试样例答案正确,提交之后就过了。

    三、截图本周题目集的PTA最后排名

    3.1 栈PTA排名

    1235979-20180414094642165-580018298.png

    3.2 队列PTA排名

    1235979-20180414163511557-69993484.png

    3.3 我的总分:255

    四、阅读代码

    4.1 优秀代码

    • 基于栈和队列实现二叉树的遍历

    1235979-20180414193759983-576182071.png
    1235979-20180414193841204-1190068957.png
    1235979-20180414193925976-313812891.png
    1235979-20180414193950602-727853756.png
    1235979-20180414194027589-629493134.png

    • 功能:不使用递归的方法,用我们学过的栈和队列完成二叉树的遍历。
    • 优点:启发思路,用我们学过的知识去解决一个问题,激发我们的灵感(当然,也可以用一些前人做好的工具去完成)。

      4.2 地址

    • https://bbs.csdn.net/topics/391882020

    五、代码Git提交记录截图

    1235979-20180414163752031-844044572.png
    1235979-20180414163815863-1416188859.png

    转载于:https://www.cnblogs.com/linyue711/p/8830397.html

    展开全文
  • 栈和队列的应用 包含流程图 源代码 截图 代码是老师给的,个为了方便操作和应用人稍加修改
  • week03-栈和队列

    2018-04-07 15:49:00
    2.2 设计思路(伪代码或流程图) 2.3 代码截图 2.4 PTA提交列表说明 思路没问题,出现了未选择好编译器的问题有点尴尬:( 题目2:7-2符号配对(20分) 2.2 设计思路(伪代码或流程图) 2.3 代码...
  • week3-栈和队列

    2018-04-07 12:31:00
    1.学习总结 2.PTA实验作业 ...2.2 设计思路(伪代码或流程图) 2.3 代码截图 2.4...
  • 03--栈和队列

    2018-04-14 19:55:00
    2.2 设计思路(伪代码或流程图) 定义字符数组mid,post存放中缀表达式后缀表达式 SqStack a; 初始化a; 最后出栈以#结束,先让#入栈 遍历中缀表达式,i=0 to len if mid[i]是数字,则post[j]=mid[i],存放于...
  • 第三周作业-栈和队列

    2019-10-03 18:01:30
    2.2 设计思路(伪代码或流程图) 利用的特点先进后出,然后定义一个数组,让其与出栈的元素相比较,然后一样就YES否则就NO 2.3 代码截图 2.4 PTA提交列表说明 一开始忘记加上头文件STACK,一直函数错误 ...
  • 第三次作业-栈和队列

    2018-04-07 20:59:00
    2.2 设计思路(伪代码或流程图) 2.3 代码截图 2.4 PTA提交列表说明。 题目2:7-2符号配对(20分) 2.2 设计思路(伪代码或流程图) 循环中判断是否读到左符号,是则进栈, 读到右符...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 271
精华内容 108
关键字:

栈和队列流程图