全部科目 > 数据库系统工程师 >
2023年上半年 上午试卷 综合知识
第 7 题
知识点 线性表的链式存储  
章/节 计算机软件基础知识  
 
 
设有一个具有头结点的单链表,指针h指向其头结点,则当(  )时该单链表为空;如果该单链表非空,且指针p指向链尾,那么(  )。
 
  A.  p->next--NULL
 
  B.  p->next-=h
 
  C.  p->next->next==NULL
 
  D.  p->next->next==h




 
 
相关试题     计算机软件基础知识 

  第22题    2019年上半年  
以下关于编译和解释的叙述中,正确的为( )。
① 编译是将高级语言源代码转换成目标代码的过程
② 解释是将高级语言源代码转换为目标代码的过程<..

  第29题    2024年上半年  
与等价的逻辑表达式是(4) 。(⊕表示逻辑异或,+表示逻辑加)

  第22题    2013年上半年  
在对高级语言源程序进行编译的过程中,为源程序中变量所分配的存储单元的地址属于(22)

 
知识点讲解
· 线性表的链式存储
 
        线性表的链式存储
        线性表的链式存储是用结点来存储数据元素,元素的结点地址可以连续,也可以不连续,因此,存储数据元素的同时必须存储元素之间的逻辑关系。另外,结点空间只有在需要的时候才申请,无须事先分配。基本的结点结构如下所示:
        
        结点中的数据域用于存储数据元素的值,指针域则存储当前元素的直接前驱或直接后继元素的位置信息,指针域中所存储的信息称为指针(或链)。
        n个结点通过指针连成一个链表,若结点中只有一个指针域,则称为线性链表(或单链表),如下图(a)所示。
        
        线性表元素的单链表存储
        在链式存储结构中,只需要一个指针(称为头指针,如上图(b)中的Head)指向第一个结点,就可以按照链接关系顺序地访问表中的任意一个元素。为了简化对链表状态的判定和处理,特别引入一个不存储数据元素的结点,称为头结点,将其作为链表的第一个结点并令头指针指向该结点。
        在链式存储结构下进行插入和删除,其实质都是对相关指针的修改。
        设单链表结点类型的定义为:
        
        在单链表p所指结点(下图中元素a所在结点)后插入新元素结点(s所指结点,下图(a)中元素c所在结点)时,操作如下:
        
        
        在单链表中插入和删除结点时的指针变化示意图
        在单链表中删除p所指结点的后继结点时,操作如下:
        
        在上图(b)中,若需删除元素b,则令p结点的指针域指向其后继的后继结点(即上图(b)中元素c所在结点),从而将元素b所在的结点从链表中摘除。
        下面给出单链表上的插入和删除运算的实现过程。
        【函数】单链表的插入运算。
        
        【函数】单链表的删除运算。
        
        线性表采用链表作为存储结构时,只能顺序地访问元素,而不能对元素进行随机存取。但其优点是插入和删除操作不需要移动元素。
        根据结点中指针信息的实现方式,还有双向链表、循环链表和静态链表等链表结构。
        .双向链表:每个结点包含两个指针,分别指明当前元素的直接前驱和直接后继信息,可在两个方向上遍历链表中的元素。
        .循环链表:表尾结点的指针指向表中的第一个结点,可从表中任意结点开始遍历整个链表。
        .静态链表:借助数组来描述线性表的链式存储结构。
        若双向链表中结点的front和next指针域分别指示当前结点的直接前驱和直接后继,则在双向链表中插入s所指结点时相关结点的指针域变化情况如下图(a)所示,其操作过程如下:
        
        
        双向链表中插入和删除结点时的指针变化示意图
        在双向链表中删除p所指结点时相关结点的指针域变化情况如上图(b)所示,其操作过程如下:
        



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2025 All Rights Reserved
软考在线版权所有