第一章作业3-链式存储结构及其操作

本文详细解析了链式存储结构中的插入和删除操作,包括单链表的插入方法,如何处理头结点,以及在循环单链表中删除指定区间元素的逻辑。同时介绍了查找链表中特定值节点的位序问题。
摘要由CSDN通过智能技术生成

一、单选题
1、

这里写图片描述


2、

这里写图片描述

答案:D

解析:
因为h不带头结点,所以h指的就是第一个元素,在第一个元素前面插入t,所以t的下一个指向h,之后,h重新变为指向第一个元素;

头指针—头结点—首元结点


3、

这里写图片描述

单链表的插入
因为在找位置的时候,是一个个找的,因此要用一个变量不断指向线性表的下一个元素;

Status ListInsert_L(LinkList&L,int i,ElemType e)//在线性表第i个位置插入元素e//插入和创建不一样,插入是在创建的基础上进行的改动;
{
    LinkList p;
    p=L;//因为现在需要找的位置是插入位置的前一个,插入的位置也有可能为头结点的后面,因此以p为起点;
    int j=0;//因为以p为起点,所以j的初始值为0;
    while(p&&j<i-1)//这里是在寻找要插入结点位置的前一个
    {
        p=p->next;
        j++;
    }
    if(!p||j>i-1) return ERROR;//p为空的话就停止;
    LinkList s;
    s=(LinkList)malloc(sizeof(LNode));//要为插入的地方创建新的结点;
    s->data=e;//千万不要忘记在创建结点之后给新结点赋值;
    s->next=p->next;
    p->next=s;
    return OK;
}

千万不要忘记在创建新结点之后赋值
插入的时候,先要找到前一个插入的位置,因为插入的位置也有可能为头结点的后面,因此以p为起点,所以j的初始值为0(这里还用了一个变量j是因为怕有错误的位置出现)。找到位置之后,创建新的结点,输入元素,然后再将新结点放到找到的p的位置的后面;


4、

这里写图片描述

答案:A


5、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值