校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 >
题目

向一个栈顶指针为h的带头结点的链栈中插入指针s所指的结点时,应执行()

A.h->next=s;

B.s->next=h;

C.s->next=h;h->next=s;

D.s->next=h->next;h->next=s;

解答

正确答案是 D

应该先将新元素的next指针指向头结点h的next指针指向的元素,然后用头结点的next的指针,指向新插入的元素s

C 7条回复 评论
Ricky

文采四溢,大佬这是被耽搁的文学家啊!

发表于 2021-10-19 23:00:00
0 0
几勺奶酪

有没有大佬带带小白

发表于 2021-09-12 19:55:00
0 0
冬季恋歌

这里的链栈是忽悠人的,不用考虑,直接s指向的节点所指向的下一个节点为头结点指向的下一个节点
头节点指向的下一个节点为s指向的节点

发表于 2018-10-13 15:16:53
0 0
小茉莉

1.栈顶指针为啥指向头结点 为什么不是第一个元素?题目没说 2.既然有头结点 为什么一定是尾插法而不是头插法? 难道这些都有规定?

发表于 2018-10-13 15:15:25
0 0
子不语

答案1:

s->next=h;h = s;//h是指向栈顶节点的指针
答案2:
s->next=h->next;h->next=s;//h是头结点h->next指向栈顶节点

按照我的理解我是觉得答案1是对的,但是出题人好像想的是答案2。

发表于 2018-10-13 15:15:20
0 0
粽子

这道题的注意点在头结点这,如果没有头结点就是c

发表于 2018-10-13 15:15:11
0 0
一零计划

带头结点,选D 
不带头结点 ,选B
注意:由于是后进先出的,所以每个进栈的数据的next 是指向 前一个进栈的数据的

发表于 2018-10-13 15:14:59
0 0