链表练习题

本文提供了一系列关于链表操作的题目,包括单选题和填空题,涉及链表节点的删除、交换、遍历及结构体定义等知识点。题目解析强调了指针操作的细节和链表结构的理解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.单选题(共5题,50.0分)

1

假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是______。
         ↓p          ↓q
    ┌─┬─┐    ┌─┬─┐   ┌─┬─┐
→│8 │  ┼→│4 │  ┼→│ 3│  ┼→
    └─┴─┘    └─┴─┘   └─┴─┘

(10.0分)

  • A、

    delete q; p->next=q->next;

  • B、

    (*p).next=(*q).next; delete q;

  • C、

    q=(*q).next; (*p).next=q; delete q;

  • D、

    q=q->next; p->next=q; p=p->next;delete p;

正确答案: B 

答案解析:

选项A的错误在于,先已经把q结点给释放,无法再执行下面的语句了;选项C和D的错误在于因为有了q=(*q).next做了赋值,则delete q释放了原来q后面的一个结点。

2

有以下结构体说明和变量定义,如下图所示,指针p、q、r分别指向一个链表中的三个连续结点。
struct node
{ int data;
struct node *next;
}*p,*q,*r;

       ┌─┬─┐   ┌─┬─┐   ┌─┬─┐
─→ │  │   ┼→│  │  ┼→│  │   ┼→
       └─┴─┘   └─┴─┘   └─┴─

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值