一、学习总结


1、写出你认为本周学习中比较重要的知识点关键词

·抽象数据类型
·栈和队列

2、思维导图

二、PTA实验作业


选题:

1、7-1 jmu-字符串是否对称(20 分)
2、7-4(选做) 列车厢调度(25 分)
3、7-2 银行业务队列简单模拟(25 分)

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

1、设计思路

#头文件
int main(){
定义字符串 c;
输入字符串;
定义字符型栈ch;
定义整型变量 len,i,a;
len <- c.size();
i <- 0;
a <- len%2;
if !a //偶数个
then while i小于len
do if i小于len/2 //进栈
then c[i]进栈
elseif c[i]等于栈顶
then 栈顶出栈
else
then 输出no
return 0;
i++;
end
else //奇数个
then while i小于len
do if i小于len/2 //进栈
then c[i]进栈
elseif c[i]等于栈顶
then 栈顶出栈
else
then 输出no
return 0;
if i等于len/2-1
then i++;
i++;
end 输出yes
return 0;
}

2、代码截图



3、PTA提交列表说明

编译错误:把编译器改成C++;
运行超时:一开始我是输入一个字符则进栈一个字符,结果运行超时,后来,修改成一次性输入字符串在进行判断。

题目2:7-4(选做) 列车厢调度

1、设计思路

#头文件
int main(){
定义整型变量 i<-0,j<-0;
定义字符型数组 a,b,res,res2;
定义字符型栈s;//用于储存轨道3的列车
输入 a,b;
while a[i]
do if a[i]==b[j]
then res[j++]<-a[i];
i++;
continue;
while s不为空&&s栈顶不等于b[j]
do res[j]<-b[j]
j++;
删除栈顶
end
if a[i]不等于b[j]
then a[i]进栈
i++
end
//将轨道3上的列车全部移向轨道2
while 栈s不为空
do res[j++]<-栈顶
删除栈顶
end
if res与b不同
then 输出“Are you kidding me?"
return 0;
i<-j<-0;
//如果res与b相同,则重复上述操作输出操作序列
while a[i]
do if a[i]==b[j]
then res2[j++]<-a[i];
i++;
输出 "1->2" 且换行
continue;
while s不为空&&s栈顶不等于b[j]
do res2[j]<-b[j]
j++;
输出 "3->2" 且换行
删除栈顶
end
if a[i]不等于b[j]
输出 "1->3" 且换行
then a[i]进栈
i++
end
while 栈s不为空
do res2[j++]<-栈顶
删除栈顶
输出 "3->2" 且换行
end
return 0;
}

2、代码截图





3、PTA提交列表说明

编译错误:代码中使用了gets()来输入字符串,头文件中的定义中没有,后来改用头文件#include <bits/stdc++.h>  ,该头文件包括了所有的头文件,不用写太多的头文件

题目3:7-2 银行业务队列简单模拟

1、设计思路

#头文件
int main(){
定义整型变量 temp,n,i<-0;
输入n;
定义队列A,B;
for i<-0 to n
do 输入temp
if temp为奇数
then 进A队列
else //temp为偶数
then 进B队列
end
//为了输出中间的空格,先输出一个
if A队列不为空
then 输出A队列头
删除A队列头
i++
else
then 输出B队列头
删除B队列头
while A队列不为空并且B队列不为空
do i++;
if i%2
then if A队列不为空
then 输出” ”和A的队列头
删除A队列头
else
if A队列不为空
then 输出” ”和A的队列头
删除A队列头
if B
then 输出” ”和B的队列头
删除B队列头
end
输出回车
return 0;
}

2、代码截图



3、PTA提交列表说明

编译错误:编译器为改成C++
部分正确:在输出第一个元素的时候,在B队列那里输出完后没有删除

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


1、栈PTA排名

2、队列PTA排名

3、我的总分:2.5

四、阅读代码

码云地址





功能:实现多项式A与多项式B的相除并输出商和余
优点:逻辑结构清晰,易于阅读;代码简洁;

五、代码Git提交记录截图


Data_Structure03-栈和队列的更多相关文章

  1. 学习javascript数据结构(一)——栈和队列

    前言 只要你不计较得失,人生还有什么不能想法子克服的. 原文地址:学习javascript数据结构(一)--栈和队列 博主博客地址:Damonare的个人博客 几乎所有的编程语言都原生支持数组类型,因 ...

  2. [ACM训练] 算法初级 之 数据结构 之 栈stack+队列queue (基础+进阶+POJ 1338+2442+1442)

    再次面对像栈和队列这样的相当基础的数据结构的学习,应该从多个方面,多维度去学习. 首先,这两个数据结构都是比较常用的,在标准库中都有对应的结构能够直接使用,所以第一个阶段应该是先学习直接来使用,下一个 ...

  3. 剑指Offer面试题:6.用两个栈实现队列

    一.题目:用两个栈实现队列 题目:用两个栈实现一个队列.队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能. 原文是使用 ...

  4. C实现栈和队列

    这两天再学习了数据结构的栈和队列,思想很简单,可能是学习PHP那会没有直接使用栈和队列,写的太少,所以用具体代码实现的时候出现了各种错误,感觉还是C语言功底不行.栈和队列不论在面试中还是笔试中都很重要 ...

  5. JavaScript数组模拟栈和队列

    *栈和队列:js中没有真正的栈和队列的类型              一切都是用数组对象模拟的 栈:只能从一端进出的数组,另一端封闭       FILO   何时使用:今后只要仅希望数组只能从一端进 ...

  6. 用JS描述的数据结构及算法表示——栈和队列(基础版)

    前言:找了上课时数据结构的教程来看,但是用的语言是c++,所以具体实现在网上搜大神的博客来看,我看到的大神们的博客都写得特别好,不止讲了最基本的思想和算法实现,更多的是侧重于实例运用,一边看一边在心里 ...

  7. JavaScript中的算法之美——栈、队列、表

    序 最近花了比较多的时间来学习前端的知识,在这个期间也看到了很多的优秀的文章,其中Aaron可能在这个算法方面算是我的启蒙,在此衷心感谢Aaron的付出和奉献,同时自己也会坚定的走前人这种无私奉献的分 ...

  8. Java数据结构和算法之栈与队列

    二.栈与队列 1.栈的定义 栈(Stack)是限制仅在表的一端进行插入和删除运算的线性表. (1)通常称插入.删除的这一端为栈顶(Top),另一端称为栈底(Bottom). (2)当表中没有元素时称为 ...

  9. python数据结构之栈、队列的实现

    这个在官网中list支持,有实现. 补充一下栈,队列的特性: 1.栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIF ...

  10. 栈和队列的面试题Java实现【重要】

    栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...

随机推荐

  1. UVa 557 汉堡

    https://vjudge.net/problem/UVA-557 题意: 有n个牛肉堡和n个鸡肉堡给2n个孩子吃.每个孩子在吃之前都要抛硬币,正面吃牛肉堡,反面吃鸡肉堡.如果剩下的所有汉堡都一样, ...

  2. POJ 2253 Frogger(dijkstra变形)

    http://poj.org/problem?id=2253 题意: 有两只青蛙A和B,现在青蛙A要跳到青蛙B的石头上,中间有许多石头可以让青蛙A弹跳.给出所有石头的坐标点,求出在所有通路中青蛙需要跳 ...

  3. c++ 判断list是否为空(empty)

    #include <list> #include <iostream> using namespace std; int main() { list<int> nu ...

  4. install ros-indigo-filters

    CMake Warning at /opt/ros/indigo/share/catkin/cmake/catkinConfig.cmake: (find_package): Could not fi ...

  5. c++ 计算指定半径圆的面积

    #include <iostream> #define PI 3.14 using namespace std; class Circle { float radius; public: ...

  6. vue之双绑实现

    // html <body> <div id="app"> <input type="text" v-model="nu ...

  7. [html5]HTML5中<section>和<article>的区别

    一.section元素 从字面理解就是区块.部分的意思,相对于article元素更加广泛,每个区块都可以使用,比如页面里的导航菜单.文章正文.文章的评论等. 1.section元素用于对网站或应用程序 ...

  8. vue-router详解

    对于单页应用,官方提供了vue-router进行路由跳转的处理,本篇主要也是基于其官方文档写作而成. 安装 基于传统,我更喜欢采用npm包的形式进行安装. npm install vue-router ...

  9. 递推-练习1--noi1760 菲波那契数列(2)

    递推-练习1--noi1760 菲波那契数列(2) 一.心得 二.题目 1760:菲波那契数列(2) 总时间限制:  1000ms 内存限制:  65536kB 描述 菲波那契数列是指这样的数列: 数 ...

  10. Ubuntu上识别不到安卓设备或者显示出“????”,提示No Permission

    一:Ubuntu上识别不到安卓设备 1.lsusb找到设备的Vendor ID 2.cd ~/.android 3.vim adb_usb.ini 4.把设备的VendorID添加进来,如设备ID为2 ...