按照“后进先出”原则组织数据的数据结构是【 】
A、队列
B、栈
C、双向链表
D、二叉树
按照“后进先出”原则组织数据的数据结构是【 】
A、队列
B、栈
C、双向链表
D、二叉树
B
【解析】
栈和队列的定义评析:栈和队列都是一种特殊的操作受限的线性表,只允许在端点处进行插入和删除。
二者的区别是:栈只允许在表的―端进行插入或删除操作,是―种“后进先出”的线性表;
而队列只允许在表的―端进行插入操作,在另―端进行删除操作,是―种“先进先出”的线性表。
某二叉树中度为2的结点有18个,则该二叉树中有__________个叶子结点。
设栈的输入序列是(1,2,3,4),则【 】不可能是其出栈序列。
栈的输入序列为1,2,3,...,n,输出序列为a1,a2,a3,...,an,若ai=n(1≤i≤n),则有 ak>ak+1>an。
设栈的输入序列为1,2,3,...,n,输出序列为a1,a2,a3,...,an,若存在1≤k≤n使得 ak=n,则当k≤i≤n时,ai 为【 】
假设有两个按元素值递增有序排列的线性表A和B,均以带头结点的单链表作为存储结构,编写算法将A表和B表归并成一个按元素值递减有序排列的线性表C,并要求利用原表(A表和B表)的结点空间存放表C。
试写出在双向链表da中的插入操作算法,算法中插入位置的获取可直接引入getnodep(da,i),其中参数da为双向链表,i是要插入的数据,要求算法中含有双向链表da的结点结构描述。
若元素a、b、c、d、e、f依次进栈,允许进栈、出栈操作交替进行。但不允许连续三次进行出栈工作,则不可能得到的出栈序列是【 】。
算术表达式a+b-c*d的后缀式是【 】(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
三个互异的元素a、b、c依次经过一个初始为空的栈后,可以得到【 】种出栈序列。
设有初始为空的栈S,对于入栈序列a、b、c、d,经由一个合法的进栈和出栈操作序列后(每个元素进栈、出栈各1次),以c作为第一个出栈的元素时,不能得到的序列为【 】。
设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到【 】。
表达式可采用后缀形式表示。例如,“a+b”的后缀式为“ab+”。那么,表达式“a*(b-c)+d”的后缀表示为【 】
对于一个初始为空的栈,其入栈序列为 1,2,3,...,n(n>3),若出栈序列的第一个元素是1则出栈序列的第n个元素【 】
若栈采用链式存储且仅设头指针,则【 】时入栈和出栈操作最方便。
对于初始为空的栈S,入栈序列为a、b、c、d,且每个元素进栈、出栈各1次。若出栈序列的第一个元素为d,则合法的出栈序列为【 】。
如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是【 】。
算术表达式a+(b-c)*d的后缀式是【 】(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
一个栈的入栈序列是A,B,C,D,E,则栈的不可能的输出序列是【】
对于一个初始为空的栈,其入栈序列为abc时,其出栈序列可以有【 】种。
对于一个初始为空的栈,其入栈序列为abc时,其出栈序列可以有【 】种。