首页 > 其他分享 >C习题-链表

C习题-链表

时间:2023-08-18 17:37:29浏览次数:55  
标签:结点 指向 next 链表 习题 指针 结构

1.在一个长度为 n ( n>1 )的单链表上,设有头和尾两个指针,执行()操作与链表的长度有关。 A、删除单链表中的第一个元素 B、删除单链表中的最后一个元素 C、在单链表第一个元素前插入一个新元素 D、在单链表最后一个元素后插入一个新元素 答案:B;需要遍历至最后一个元素的前一个   2、NumberList是一个顺序容器,以下代码执行后,NumberList里的元素依次为:  

List<int> NumberList = new List<int>(){2,4,1,3,5};
for(int i = 0;i<NumberList.Count;++i)
{
    int v = NumberList[i];
    if(v%2 = = 0)
    {
        NumberList.Remove(v);//删除的是元素,而非下标
    }
}

A、2,4,1,3,5

B、2,1,3,5 C、4,1,3,5 D、1,3,5 答案:C;选c,第一次循环删除元素2,因为是顺序容器,容器中后面所有元素需要向前移动一个位置,即{4,1,3,5}。进入第二次循环判断的是i=1位置的元素,并没有对4进行操作,所以4并没有被删除。所以答案选C ...


3、下列叙述中正确的是? A、线性表是线性结构 B、栈与队列是非线性结构 C、线性链表是非线性结构 D、二叉树是线性结构 答案:A;线性表,栈,队列是线性结构,表示一对一的关系。二叉树是非线性结构,每个结点有两个孩子  
4、用数组r存储静态链表,结点的next域指向后继,工作指针j指向链中结点,使j沿链移动的操作为()? A、j=r[j].next B、 j=j+1 C、 j=j->next D、j=r[j]->next 答案:A;首先链表的下一个结点应该用next指针访问,排除B;当前结点是r[j],可以排除C;r[j]是当前节点而不是指向当前节点的指针,因此用r[j].next;当结构体中next是结构体指针类型则c/c++访问是需要用结构体类型->next来访问 如果不是指针类型 而是结构体类型就应该用 结构体名.next来访问(.前面是结构体,->前面是结构体指针 )  
5、以下几种方式当中,稀疏矩阵压缩的存储方法是:() A、三元组 B、二维数组 C、散列 D、十字链表 答案:AD; 三元表:将非零元素所在的行、列以及它的值构成一个三元组(i,j,v)。  十字链表是有向图的另一种链式存储结构。该结构可以看成是将有向图的邻接表逆邻接表结合起来得到的。  
6、若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。 A、顺序表 B、双链表 C、带头结点的双循环链表 D、单循环链表 答案:A;“存取任一指定序号”最好的方法是实现“随机存取”,则可采用顺序表。并且,因为插入和删除操作都是在最后进行的,所以无需大量移动数据元素,   7.下列叙述中不正确的是(    ) A、在链表中,如果每个结点有两个指针域,则该链表一定是非线性结构 B、在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构 C、在链表中,如果每个结点有两个指针域,则该链表一定是线性结构 D、在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是线性结构 答案:ACD; A选项:在链表中,如果每个结点有两个指针域,则该链表一定是非线性结构,错,类似于传统的双链表,一个指向前一个结点,一个指向后一个结点,这种双链表还是一个线性结构。 B选项:在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是非线性结构。对,如果有两个结点的同一个指针域的值,那么被指向的这个点,有两个前驱,违背了唯一的特点,所以必须是非线性结构。 C选项:在链表中,如果每个结点有两个指针域,则该链表一定是线性结构,错。例如变种的双链表,一个指向后继结点,一个指向链表中的任意结点。如果指向同一结点的话,就类似B选项,所以这个选项是错的。 D选项:在链表中,如果有两个结点的同一个指针域的值相等,则该链表一定是线性结构,错。一个普通的链表中,不同的结点值可以相等,但是这种链表是线性结果。所以这个选项是错的。
8.线索二叉链表是利用()域存储后继结点的地址。 A、lchild B、data C、rchild D、root 答案:C;线索化二叉树 通过其空闲的左右孩子来将这个二叉树进行线索化 其中左孩子指针指向他的前驱节点 他的右孩子指针指向他的后继节点     9.JDK8之前版本,HashMap的数据结构是怎样的? A、数组 B、链表 C、数组+链表/红黑树 D、 二叉树 答案:C;  

标签:结点,指向,next,链表,习题,指针,结构
From: https://www.cnblogs.com/ljf-0804/p/17641099.html

相关文章

  • 《Lua程序设计第四版》 第三部分18~21章自做练习题答案
    Lua程序设计第四版第三部分编程实操自做练习题答案,带⭐为重点。18.1编写一个迭代器,与数值型for等价,能否以无状态迭代器实现?functionfromto(n,m)returnfunction(m,c)ifc<mthenreturnc+1endreturnnilend,m,n......
  • 几道典型的贪心算法练习题-适合入门
    1、看电视题目描述暑假到了,小明终于可以开心的看电视了。但是小明喜欢的节目太多了,他希望尽量多的看到完整的节目。现在他把他喜欢的电视节目的转播时间表给你,你能帮他合理安排吗?输入输入包含多组测试数据。每组输入的第一行是一个整数n(n<=100),表示小明喜欢的节目的总数。接下......
  • 链表的创建&遍历打印
    博客地址:https://www.cnblogs.com/zylyehuo/#-*-coding:utf-8-*-classNode:def__init__(self,item):self.item=itemself.next=None#头插法defcreate_linklist_head(li):head=Node(li[0])forelementinli[1:]:......
  • Leetcode 19. 删除链表的倒数第N个结点(Remove nth node from end of list)
    题目链接给你一个链表,删除链表的倒数第n个结点,并且返回链表的头结点.示例1:输入:head=[1,2,3,4,5],n=2输出:[1,2,3,5]示例2:输入:head=[1],n=1输出:[]提示:链表中结点的数目为sz1<=sz<=300<=Node.val<=1001<=n<=sz思路暴力解法:可以先......
  • 顺序表与链表
    顺序表与链表前言  基础数据结构的学习主要包括两个部分,即【结构定义】与【结构操作】。顾名思义,结构定义就是定义某种或多种性质,再通过相关的结构操作去维护这种性质。对于初学者来说数据结构的学习不能抽象的理解,还需要结合动态的、可视化的工具去理解。下面给出美国旧金山......
  • 《安富莱嵌入式周报》第320期:键盘敲击声解码, 军工级boot设计,开源CNC运动控制器,C语言
    周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 视频版:https://www.bilibili.com/video/BV1Cr4y1d7Mp/1、键盘敲击声解码https://arxiv.org/abs/2308.01074键盘敲击声被解码的话,我们使用键盘输入密码将被方便的解码出......
  • 4.1 C++ STL 动态链表容器
    List和SList都是C++STL中的容器,都是基于双向链表实现的,可以存储可重复元素的特点。其中,List内部的节点结构包含两个指针一个指向前一个节点,一个指向后一个节点,而SList只有一个指针指向后一个节点,因此相对来说更节省存储空间,但不支持反向遍历,同时也没有List的排序功能。双向链表的......
  • 4.1 C++ STL 动态链表容器
    List和SList都是C++STL中的容器,都是基于双向链表实现的,可以存储可重复元素的特点。其中,List内部的节点结构包含两个指针一个指向前一个节点,一个指向后一个节点,而SList只有一个指针指向后一个节点,因此相对来说更节省存储空间,但不支持反向遍历,同时也没有List的排序功能。双向链表......
  • 《Lua程序设计第四版》 第二部分14~17章自做练习题答案
    Lua程序设计第四版第二部分编程实操自做练习题答案,带⭐为重点。14.1⭐该函数用于两个稀疏矩阵相加functionmartixAdd(a,b)localc={}fori=1,#a,1doc[i]={}fork,vinpairs(a[i])doc[i][k]=vendend......
  • LeetCode -- 19. 删除链表的倒数第 N 个结点
     一般的删除问题,可以直接删除(找符合条件的,找到了直接删掉),延迟删除(打标记,找完了再删除),栈,双指针 在链表中删除一个节点,要找到其前面一个节点cur,然后cur->next=cur->next->next即可 方法一:直接删除我们先算出链表长度len,要删除倒第n个节点就是删除第len-n......