下列链表中最不适合用作链栈的是()。A.只有表头指针没有表尾指针的双向循环链表。B.只有表尾指针没有表头指针的双向循环链表。C.只有表尾指针没有表头指针的单循环链表。D.只有表头指针没有表尾指针的单循环链表。E.同时设有表头指针和表尾指针的单链表。
下列链表中最不适合用作链栈的是()。
A.只有表头指针没有表尾指针的双向循环链表。
B.只有表尾指针没有表头指针的双向循环链表。
C.只有表尾指针没有表头指针的单循环链表。
D.只有表头指针没有表尾指针的单循环链表。
E.同时设有表头指针和表尾指针的单链表。
参考答案和解析
只有表头指针没有表尾指针的单循环链表。
相关考题:
下列关于链表结构的叙述正确的是( )A.线性链表、带链的栈和带链的队列的结点的结构都是相同的B.双向链表也就是循环链表C.线性链表与带链的栈的结点的结构是不同的D.在循环链表中通过任意一个结点可以找到链表中其他所有的结点,而在双向链表中做不到这一点
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[说明]用链式存储结构实现的栈称为链栈。若链栈元素的数据类型为datatype,以LinkStack记链栈结构,其类型定义为:typedef struct node{ datatype data;stmct node * next;} StackNode, * LinkStack;由于栈的主要操作都是在栈顶进行的,因此我们把链表的头部作为栈顶。设top为栈顶指针,即:LinkStack top。下面各函数的功能说明如下:(1)LinkStack Init_LinkStack():建立并返回空的链栈;(2)int Empty_LinkStack(LinkStack top):判断top所指链栈是否空;(3)LinkStack Push_LinkStack(LinkStacktop,datatypex):将数据x压人top所指链栈的栈顶,返回新栈指针;(4)LinkStack Pop_LinkStack (LinkStacktop, datatype*x):弹出top所指链栈的栈顶元素x,返回新栈指针。[函数]LinkStaek Init_LinkStack( ){ returnNULL;int Empty_LinkStack ( LinkStaek top)if(top = = NULL) return 1;else return 0;LinkStaek Push_LinkStaek( LinkStaektop, datatype X){ StaekNode *s;s=malloc (sizeof(StaekNode) );(1)= x;(2)= top;(3);return top;}LinkStaek Pop_LinkStack (LinkStacktop, datatype * x){ StaekNode *p;if(top = = NULL) return NULL;else{* x =(4);p = top;(5);free (p);return top;}}
若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。A.采用不含头结点的单链表且栈顶元素放在表尾结点B.采用不含头结点的单链表且栈顶元素放在表头结点C.采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点D.采用含头结点的双向链表且栈顶元素放在表尾结点
栈的特点是后进先出,若用单链表作为栈的存储结构,并用头指针作为栈顶指针,则( )。A.入栈和出栈操作都不需要遍历链表B.入栈和出栈操作都需要遍历链表C.入栈操作需要遍历链表而出栈操作不需要D.入栈操作不需要遍历链表而出栈操作需要
判断题以链表作为栈的存储结构,出栈操作必须判别栈空的情况。A对B错