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

    1.本周学习总结(0--1分)

    谈谈你对栈和队列结构的认识及学习体会。

    队列(queue)是只允许在一端进行插入操作,而在另一端进行删除操作的线性表。
    队列是一种先进先出的线性表,由于rear 可能比 front 大, 也可能比front小,所以尽管
    它们只相差一个位置时就是满的情况,但也可能是相差整整一圈。
    栈 (Stack)是一种后进先出(last in first off,LIFO)的数据结构,在应用上我们也讲过用栈和队列做迷宫问题
    栈用的是深度搜索,队列用的是广度搜索;前者是最快的找出解法不考虑最优解,后者是找出所有解法,并选出最优解。

    2.PTA实验作业(6分)

    2.1.题目1

    在一个数组中实现两个堆栈

    2.1.2代码截图

    2.1.3本题PTA提交列表说明。

    Q1:这道题目中有两个栈顶,在判断栈空的时候的出现错误,

    2.2 题目2

    在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?

    2.2.2代码截图

    2.2.3本题PTA提交列表说明。

    Q1: 在dev上复制过来的时候少复制了导致格式错误

    2.3 题目3

    编写一个算法利用顺序栈判断一个字符串是否是对称串。所谓对称串是指从左向右读和从右向左读的序列相同。

    2.3.1设计思路

    while(a[i])
    {
    S.push(a[i]);
    i++;
    }//先将数列入栈。
    while(!S.empty())
    {
    b[j]=S.top();
    S.pop();
    j++;//
    再将数列出栈,则得到相反的俩个字符数组;
    再进行比较

    2.3.2代码截图

    2.3.3本题PTA提交列表说明。

    Q1:在j的赋值的时候考虑错误,把j赋值了1出现错误

    2.4 题目4

    报数游戏是这样的:有n个人围成一圈,按顺序从1到n编好号。从第一个人开始报数,报到m(m<n)的人退出圈子;下一个人从1开始报数,报到m的人退出圈子。如此下去,直到留下最后一个人。其中n是初始人数;m是游戏规定的退出位次(保证为小于n的正整数)。要求用队列结构完成。输出数字间以空格分隔,但结尾不能有多余空格。

    2.4.1设计思路

    if m大于n,
    大于结束
    else
    将数据输入到队列里
    定义变量i,
    if i==m
    出队列
    else
    就出队列再入队列

    2.4.2代码截图

    2.4.3本题PTA提交列表说明。

    Q1: queue函数运用不熟练,出现少加front后面的括号等情况

    3、栈和队列上机考试(-3--3分)

    错题及解决办法
    截图错题代码,分析错误原因及后续要改进地方。请至少列举2题。如果拿满分同学,这部分可不写,直接拿3分。

    3.1题目一

    假设在周末舞会上,男士和女士们分别进入舞厅,各自排成一队。跳舞开始,依次从男队和女队队头各出一人配成舞伴,若两队初始人数不同,则较长那一队未配对者等待下一轮舞曲。现要求写一算法模拟上述舞伴配对问题。 你需要用队列操作实现上述算法。请完成下面5个函数的操作。

    3.1.2 截图

    在另类堆栈的那一题卡的时间太久,是自己太紧张始终忘了这一道题怎么写的了。这道题要注意中文是俩个字节,这一点会有可能经常性被人忽略。我在上机考试中花了大部分时间写了大概将近3道题,未来的日子我会更加努力。

    3.2题目二

    假设表达式中允许包含3种括号:圆括号、方括号和大括号。即(,[,'{'。编写一个算法判断表达式中的括号是否正确配对, 要求利用栈的结构实现。

    3.2.2 截图

    这一题我不是很会所以我就取巧的拿了10分,前面的题也卡了很久所以没有接着去写,我认为这种取巧的方式适不适合在平时的练习的,所以在以后的代码日子里我会更加努力的。
    注意:分析错误原因及体会,主要讲代码错误。

    这是这道题正确的做法!

  • 相关阅读:
    【LeetCode】Binary Tree Upside Down
    【LeetCode】171. Excel Sheet Column Number
    【LeetCode】Longest Substring with At Most Two Distinct Characters (2 solutions)
    【Algorithm】回溯法与深度优先遍历的异同
    【C++】自定义比较函数小结
    【LeetCode】4. Median of Two Sorted Arrays (2 solutions)
    【LeetCode】3. Longest Substring Without Repeating Characters (2 solutions)
    【LeetCode】Add Two Numbers
    【LeetCode】5. Longest Palindromic Substring
    【LeetCode】6. ZigZag Conversion
  • 原文地址:https://www.cnblogs.com/jellysheep/p/10747126.html
Copyright © 2011-2022 走看看