题目内容 (请给出正确答案)
[单选题]

一个单向简单链表存储的栈,其栈顶指针为top。执行操作______可将原栈顶元素退栈,并存放在变量x中(不考虑回收结点)。

A.x=top; top=top->next;

B.x=top->data;

C.top=top->next; x= top->data;

D.x=top->data; top=top->next;

提问人:网友sharemin 发布时间:2022-01-07
参考答案
查看官方参考答案
如搜索结果不匹配,请 联系老师 获取答案
网友答案
查看全部
  • · 有3位网友选择 B,占比37.5%
  • · 有2位网友选择 C,占比25%
  • · 有2位网友选择 D,占比25%
  • · 有1位网友选择 A,占比12.5%
匿名网友 选择了B
[247.***.***.120] 1天前
匿名网友 选择了A
[220.***.***.137] 1天前
匿名网友 选择了C
[233.***.***.189] 1天前
匿名网友 选择了B
[247.***.***.120] 1天前
匿名网友 选择了C
[176.***.***.131] 1天前
匿名网友 选择了B
[84.***.***.233] 1天前
匿名网友 选择了A
[220.***.***.137] 1天前
匿名网友 选择了D
[207.***.***.39] 1天前
匿名网友 选择了B
[116.***.***.130] 1天前
匿名网友 选择了D
[220.***.***.143] 1天前
匿名网友 选择了C
[233.***.***.189] 1天前
匿名网友 选择了B
[84.***.***.233] 1天前
匿名网友 选择了C
[176.***.***.131] 1天前
匿名网友 选择了B
[84.***.***.233] 1天前
匿名网友 选择了A
[220.***.***.137] 1天前
匿名网友 选择了D
[207.***.***.39] 1天前
匿名网友 选择了B
[116.***.***.130] 1天前
匿名网友 选择了D
[220.***.***.143] 1天前
匿名网友 选择了C
[233.***.***.189] 1天前
匿名网友 选择了B
[247.***.***.120] 1天前
加载更多
提交我的答案
登录提交答案,可赢取奖励机会。
更多“一个单向简单链表存储的栈,其栈顶指针为top。执行操作___…”相关的问题
第1题
阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

本题给出四个函数,它们的功能分别是:

1.int push(PNODE*top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

2.int pop(PNODE*top,int*e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

3.int enQueue(PNODE*tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

4.int deQueue(PNODE*tail,int*e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

以上四个函数中,返回值为。表示操作成功,返回值为-1表示操作失败。

栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

typedef struct node {

int value;

struct node * next;

} NODE, * PNODE;

【函数1】

int push(PNOOE * top,int e)

{

PNODE p = (PNODE) malloc (sizeof (NODE));

if (! p) return-1;

p->value=e;

(1);

*top=p;

return 0;

}

【函数2】

int pop (PNODE * top,int * e)

{

PNODE p = * top;

if(p == NULL) return-1;

* e = p->value;

(2);

free(p);

return 0;

}

【函数3】

int enQueue (PNODE * tail,int e)

{ PNODE p,t;

t= *tail;

p = (PNODE) malloc(sizeof(NODE));

if(!p) return-1;

p->value=e;

p->next=t->next;

(3);

* tail = p;

return 0;

}

【函数4】

int deQueue(PNODE * tail,int * e)

{ PNODE p,q;

if((* tail)->next == * tail) return-1;

p= (* tail)->next;

q = p ->next;

* e =q ->value;

(4)=q->next;

if(,tail==q) (5);

free(q);

return 0;

}

点击查看答案
第2题
以下是用类C语言写出的算法,该算法将以二叉链表存储的二叉树中的叶子结点按从左到右的顺序链成一个带头结点的双向循环链表,链接时,结点的Lchild域作为前链域,指向结点的直接前驱,结点的Rchild域作为后链域,指向结点的直接后继。算法中,使用一个顺序栈stack,栈顶指针为top,P、t为辅助指针,head为双向循环链表的头指针。试填充算法中的空格,以完整算法。 void leafchain(BiTree&bt) {p=(BiTree)malloc(sizeof(BiTNode));
点击查看答案
第3题
队列和栈都是操作受限的线性表,只允许在表的两端进行操作。
点击查看答案
第4题
链表的结点是由 组成的。

A、数据域

B、表头

C、头指针

D、指针域

点击查看答案
第5题
如果单向链表带有头结点,则插入操作永远不会改变头结点指针的值。
点击查看答案
第6题
已知有一个单向循环链表, 其每个结点中含三个域:pre, data和next, 其中data为数据域, next为指向后继结点的指针域, pre也为指针域,但它的值为空,试编写算法将此单向循环链表改为双向循环链表, 即使pre成为指向前驱结点的指针域。

点击查看答案
第7题
设存在一个带头结点的单循环链表L,每个结点包含三个域,它们分别是prior、data和next。其中data为数据域,prior是指针域,其值为空指针;next是指针域,指向直接后继结点。下面的代码将此单链表转化为双向循环链表。 #define OK 1 #define ERROR 0 typedef int ElemType; typedef int Status; typedef struct LNode{ struct LNode* prior; ElemType data; struct LNode* next; }DuLNode,*DuLinkList; Status CreateDuList_prior(DuLinkList &L){ // Make the prior point to the precursor node. DuLinkList p,q; 1 ; do{ q = p->next; 2 ; p = q; }while(p!=L); return OK; } 请填写空格1和2处的代码,实现上述功能。
点击查看答案
第8题
设一个带头结点的单向链表的头指针为head,设计算法,将链表的记录,按照data域的值递增排序。
点击查看答案
第9题
首尾指针分别是f和r的单向加头链表存储一个队,元素x出队的语句为“f=f->next, x=f->data;”,那么判断队空否的条件是_____。

A、f= =r

B、f= =NULL

C、f->next= =r

D、f->next=NULL

点击查看答案
账号:
你好,尊敬的用户
复制账号
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
欢迎分享答案

为鼓励登录用户提交答案,简答题每个月将会抽取一批参与作答的用户给予奖励,具体奖励活动请关注官方微信公众号:简答题

简答题官方微信公众号

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
简答题
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反简答题购买须知被冻结。您可在“简答题”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
简答题
点击打开微信