题目内容 (请给出正确答案)
[主观题]

若队列采用单链表结构实现,则链表的头指针的位置,表示的是队列的 。(请填队头或队尾)

暂无答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“若队列采用单链表结构实现,则链表的头指针的位置,表示的是队列…”相关的问题

第1题

若栈采用单链表结构实现,则链表的头指针的位置,表示的是栈的 。(请填栈顶或栈底)
点击查看答案

第2题

已知L是非空单链表,head是链表的头指针,且所有结点都...

已知L是非空单链表,head是链表的头指针,且所有结点都已具有如下形式的结构定义:struct node { int data; struct node *next; }*p; 若要删除头结点,则下面正确的语句序列是

A、p = head; head = p->next; free(p);

B、head = head->next; free(head);

C、p = head->next; free(p);

D、head = head->next; p = head; free(p);

点击查看答案

第3题

已知L是非空单链表,head是链表的头指针,且所有结点都...

已知L是非空单链表,head是链表的头指针,且所有结点都已具有如下形式的结构定义:struct node { int data; struct node *next; }*p; 若要删除头结点,则下面正确的语句序列是

A、p = head; head = p->next; free(p);

B、head = head->next; free(head);

C、p = head->next; free(p);

D、head = head->next; p = head; free(p);

点击查看答案

第4题

若用单链表来表示队列,下面几种数据结构中,最合适的是( )。【四川大学2004】

A.带尾指针的非循环链表

B.带尾指针的循环链表

C.带头指针的非循环链表

D.带头指针的循环链表

点击查看答案

第5题

已知一个带有表头结点的单链表,结点结构为(data,link),假设该链表只给出了头指针list。在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点(k为正整数),若查找成功,算法输出该结点的data域的值,并返回1;否则,只返回0,要求: (1)描述算法的基本设计思想; (2)描述算法的详细实现步骤; (3)根据设计思想和实现步骤,采用程序设计语言描述算法(使用C或C++或Java语言实现),关键之处请给出简要注释。【2009年全国试题42(15分)】

点击查看答案

第6题

采用循环链表作为存储结构的队列就是循环队列。(  )
点击查看答案

第7题

不是线性表的链式存储结构。

A.多重链表

B.单链表

C.双链表

D.循环链表

点击查看答案

第8题

请根据下面介绍的跳跃表的思想实现跳跃表。

  为了提高链表的检索效率,可以参考顺序表把单链表中元素排序,然后采用类似二分法的思想进行折半检索。不过,因为链表中结点的位置不是连续存放的,所以为了折半检索的需要,把单链表扩充为多链结构,借助于一些支持折半的“跳跃的指针”,把检索的范围快速缩小。

  下图(a)是一个简单的链表,其结点按照结点值的顺序排列,检索排序的链表需要沿着链表一个结点一个结点的移动,平均需要访问n/2个结点。考虑添加一个指向其他后继结点的指针,以便交替地跳过结点的直接后继结点,如下图(b)所示。把只有1个指针的结点定义为0级跳跃表结点,把有2个指针的结点定义为1级跳跃表结点。进行检索时,先沿着1级指针走,直到找到一个后继比检索关键码大的值。然后回到0级指针,如果需要的话,再多走一个结点,这样可有效地把工作量减半。类似地,可以继续以这种方式添加指针,直到像下图(c)那样,对于一个有n=8个结点的表,只要有log2n=3个指针。进行检索时,第一步就可以跳过n/2个结点,然后根据需要使得步伐越来越短(类似二分法检索)。通过这种安排,平均情况下的访问数是O(log2n)。

  

  下图(c)是一个理想的跳跃表。其中一半的结点只有1个指针,四分之一的结点有2个指针,八分之一的结点有3个指针,依此类推。而且同一级的指针跳跃的跨度是相同的。这是一个完全“等跨度”的跳跃表。

  概率数据结构的思想

  跳跃表与有序的顺序表不同,它是一种动态数据结构,它的主要优点是能够动态地保持高效的检索。在频繁执行插入和删除过程维护前面这种“完全”等跨度的代价很大。为了减少维护的代价,仅仅需要维护成随机的等跨度就行。采用的关键技术是按照所谓“概率数据结构”的思想。具体方法如下:

  假设元素的插入和删除都是随机的,每当删除一个结点时,在跳跃表中找到该结点后直接删除;关键是在插入一个结点时,要为新结点按概率随机分配一个级别,使得在跳跃表的所有结点中,有一个指针的结点(0级跳跃表结点)概率是50%,有两个指针的结点(1级跳跃表结点)概率是25%……依此类推。这样,根据概率论的观点,进行检索时,平均情况下的访问结点数仍然是O(log2n)。

点击查看答案

第9题

已知head是非空单链表的头指针,p结点既不是头结点,也...

已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。且所有结点都已具有如下形式的结构定义: struct node { int data; struct node *next; }*p,*q; 则下面语句序列的功能是while(p->next->next != NULL) { p = p->next; } free(p->next); p->next = NULL;

A、删除链表的尾结点

B、删除p结点

C、删除结点q

D、删除p的前驱结点

点击查看答案

第10题

已知head是非空单链表的头指针,p结点既不是头结点,也...

已知head是非空单链表的头指针,p结点既不是头结点,也不是尾结点,q是尾结点的前驱结点。且所有结点都已具有如下形式的结构定义: struct node { int data; struct node *next; }*p,*q; 则下面语句序列的功能是 while(p->next->next != NULL) { p = p->next; } free(p->next); p->next = NULL;

A、删除链表的尾结点

B、删除p结点

C、删除结点q

D、删除p的前驱结点

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

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

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

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