信息学奥赛数据结构教程PASCAL版
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息学奥赛数据结构教程PASCAL版第二课堆栈和队列
一、堆栈
1(概述
栈(stack)是一种特殊的线性表。作为一个简单的例子,可以把食堂里冼净的一摞碗看作一个栈。在通常情况下,最先冼净的碗总是放在最底下,后冼净的碗总是摞在最顶上。而在使用时,却是从顶上拿取,也就是说,后冼的先取用,后摞上的先取用。好果我们把冼净的碗“摞上”称为进栈,把“取用碗”称为出栈,那么,上例的特点是:后进栈的先出栈。然而,摞起来的碗实际上是一个表,只不过“进栈”和“出栈”,或者说,元素的插入和删除是在表的一端进行而已。
一般而言,栈是一个线性表,其所有的插入和删除均是限定在表的一端进行,允许插入和删除的一端称栈顶(Top),不允许插入和删除的一端称栈底(Bottom)。若给定一个栈S=(a1, a2,a3,…,an),则称a1为栈底元素,an为栈顶元素,元素ai位于元素ai-1之上。栈中元素按a1, a2,a3,…,an 的次序进栈,如果从这个栈中取出所有的元素,则出栈次序为an, an-1,…,a1 。也就是说,栈中元素的进出是按后进先出的原则进行,这是栈结构的重要特征。因此栈又称为后进先出(LIFO—Last In First Out)表。我们常用一个图来形象地表示栈,其形式如下图:
通常,对栈进行的运算主要有以下几种:
(1) 往栈顶加入一个新元素,称进栈;
(2) 删除栈顶元素,称退栈;
(3) 查看当前的栈顶元素,称读栈。
此外,在使用栈之前,首先需要建立一个空栈,称建栈;在使用栈的过程中,
还要不断测试栈是否为空或已满,称为测试栈。
2(栈的存储结构
栈是一种线性表,在计算机中用向量作为栈的存储结构最为简单。因此,当用编程语言写程序时,用一维数组来建栈十分方便。例如,设一维数组STACK[1..n] 表示一个栈,其中n为栈的容量,即可存放元素的最大个数。栈的第一个元素,或称栈底元素,是存放在STACK[1]处,第二个元素存放在STACK[2]处,第i个元素存放在STACK[i]处。另外,由于栈顶元素经常变动,需要设置一个指针变量top,用来指示栈顶当前位置,栈中没有元素即栈空时,令top=0,当top=n时,表示栈满。
3(对栈的几种运算的实现方法:
(1)建栈
continue to respond 5min. Remove the absorption tube, 1cm Cuvette, wavelength of 400nm, to standard pipes zero regulating and absorbs
lightdReport of the arithmetic mean of the two-bit significand. 28 allow difference in repeatability conditions of the absolute value of the difference of two independent measurement results shall not exceed the arithmetical average of the 15%. Butyl 29 scope this standard provides
for the determination of inorganic arsenic in food total determination method of inorganic arsenic. This standard is applicable to all types of determination of total arsenic in food. The method detection limit: atomic fluorescence spectrometry: 0.04mg/kg solid samples, liquid sample 0.004mg/L) silver salt method: 0.1mg/kg. Linear range: 1.0 µ g~10.0 µ g. First, 30 principle in food by hydride generation-atomic fluorescence spectrophotometry may exist in different chemical forms of arsenic, including inorganic arsenic and organic arsenic. 6mol/L hydrochloric
acid water conditions, inorganic arsenic in the form of chloride was extracted to achieve separation of inorganic arsenic and organic arsenic. Determination of total inorganic arsenic in the condition of 2mol/L hydrochloride. 31 reagent 31.1 hydrochloric acid solution (1+1): volume 250mL hydrochloric acid. Slowly pour in 250mL water, and mix. 31.2 the potassium hydroxide solution (2g/L): weighing 2G and potassium hydroxide dissolved in water, dilute to 1000mL. 31.3 potassium borohydride
solution (7g/L): weighing 3.5G 500mL2g/L solution for potassium borohydride solution of potassium hydroxide. 31.4 potassium iodide
(100g/L)-thiourea solution (50g/L): weighing Ki 10G, 5G water solution 这比较简单,只要建立一个一维数组,再把栈顶指针置为零。栈的容量根据具
体的应用要求而定。