青少年编程知识记录 codecoming

【数据结构】队列—基本操作

一、C++实例分析

       C++队列queue模板类的定义在<queue>头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。

       那么我们如何判断队列是空队列还是已满呢?

      a、栈空: 队首标志=队尾标志时,表示栈空。

      b、栈满 : 队尾+1 = 队首时,表示栈满。

       使用标准库的队列时, 应包含相关头文件,在栈中应包含头文件: #include< queue> 。定义:queue< int > q;

q.empty()               如果队列为空返回true,否则返回false  q.size()                返回队列中元素的个数  q.pop()                 删除队列首元素但不返回其值  q.front()               返回队首元素的值,但不删除该元素  q.push()                在队尾压入新元素  q.back()                返回队列尾元素的值,但不删除该元素
作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】队列—基本概念

一、基本定义队列是一种先进先出的线性结构,简称FIFO结构。特点就是“先进先出”二、队列的相关概念队头与队尾:允许元素插入的一端称为队尾,允许元素删除的一端称为队头入队:队列的插入操作出队:队列的删除操作例如我们有一个存储型元素的队列,我们依次入队:{1,2,3}添加元素时,元素只能从队尾一端进入队列,也即是2只能跟在1后面,3只能跟在2后面。如果在队列中的元素要出队:元素只能从队首出队列,出队列的顺序为1,2,3,与入队列时的顺序一致,这就是所谓的“先进先出”。三、队列的分类基于数组的循环队列
作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】栈—括号匹配检验

【题目描述】

假设表达式中允许包含两种括号:圆括号和方括号,其嵌套的顺序随意,如([ ]())或[  (  [  ] [  ] ) ] 等为正确的匹配,[  (  ]  )或 ([ ] ( )

或 (  ( ) ) )均为错误的匹配。

现在的问题是,要求检验一个给定的表示式中的括号是否正确匹配?

输入一个只包含圆括号和方括号的字符串,判断字符串中的括号是否匹配,匹配就输出“OK”,不匹配就 输出“wrong”。输入一个字符串:

[  ( [ ] [  ] ) ], 输出OK。

【输入描述】

输入仅一行字符(字符个数小于255)

【输出描述】

匹配就输出“OK”,不匹配就输出“wrong”

【样例输入】

[ ( ] )

【样例输出】

wrong

作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】栈—表达式括号匹配

【题目描述】

假设一个表达式有英文字母(小写)、运算符(+,—,*,/)和左右小(圆)括号构成,以“@”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号是否匹配,若匹配,则返回“YES”;否则返回“NO”。表达式长度小于255,左圆括号少于20个。

【输入描述】

一行数据,即表达式。

【输出描述】

一行,即“YES” 或“NO”。

【样例输入】

2*(x+y)/(1-x)@

【样例输出】

YES

作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】栈的基本操作

0.前言上一篇中简单介绍了栈的定义,这一篇中介绍栈的基本用法,包含压栈,出栈,判断栈空,判断栈中元素个数等。下面进行详细介绍1.基本用法本文介绍的栈的主要操作,使用栈之前加入<stack>头文件。基本用法如下:s.push(item);       //将item压入栈顶   s.pop();        &nb
作者:亿万年的星光 分类:C++知识 浏览:

【数据结构】栈(Stack)的介绍

栈是只能在某一端插入和删除的特殊线性表。栈就是一种类似桶堆积物品的数据结构,进行删除和插入的一端称栈顶,另一端称栈底。插入一般称为进栈(PUSH),删除则称为退栈(POP)。栈也称为后进先出表(LIFO表)。一、栈的定义二、分类静态栈:使用数组动态栈:链表标准库STL中的stack三、算法入栈:push出栈:pop判断栈空:empty栈大小:size访问栈顶:top进栈(PUSH)算法①若top >= n时,则给出溢出信息,作出错处理(进栈前首先检查栈是否已满,满则溢出;不满则进行②)②t
作者:亿万年的星光 分类:C++知识 浏览:

第十四届全国青少年信息学奥林匹克联赛初赛试题(NOIP2008年普及组初赛C++试题及参考答案)

第十四届全国青少年信息学奥林匹克联赛初赛试题                   ( 普及组  C++语言  二小时完成 ) 一、 单项选择题 (共20题,每题1.5分,共计30分。每题有且仅有一个正确答案.)。1.微型计算机中,控制器的基本功能是(   )。A. 控制机器各个部

NOIP2013年普及组初赛题目及答案分析

一、单项选择题1. 一个 32 位整型变量占用( A )个字节。 A. 4    B. 8      C. 32      D. 128 【分析】32位整型,1Byte=8位, 32/8=4,答案选A2.二进制数 11.01 在十进制下是(  A  )。 A. 3.25    B. 4.125    C. 6.25    D. 11.12
作者:亿万年的星光 分类:C++知识 浏览:

数组的不确定长度输入

0.前言我们在学习数组的时候一般都会告诉你数组的长度,然后for循环去遍历。但是有一类问题是没有n的,也就是没有告诉长度的。1.方法第一种:(数组)#include<iostream> #include<cstdio> using namespace std; int main() { int a[100]; int t=0; int n; while(scanf("%d
作者:亿万年的星光 分类:C++知识 浏览:

【贪心】区间选点

【题目描述】

数轴上有n个闭区间[ai, bi],取尽量少的点,使得每个区间内都至少有一个点。(不同区间内含的点可以是同一个,1<=n<=10000,1<=ai<=bi<=10^9)。求最少点的个数。

【输入】

n

n项工作的开始与结束时间

【输出】

最多参与的工作项数

【输入样例1】

Bash
4  3 13  6 20  4 14  1 10

【输出样例1】

1





【输入样例2】

Bash
3  4 7  6 8  11 20

【输出样例2】

2



作者:亿万年的星光 分类:C++知识 浏览: