王道考研 线性表知识点巩固

本文深入探讨了链表和顺序表的特点与区别,包括它们的存取方式、逻辑结构与物理结构的关系、基本操作的效率,以及空间分配的特性。同时,文章还介绍了静态链表、队列的存储结构选择、单链表头结点的作用,以及在不同场景下适用的链表类型。

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

链表、顺序表选择题、简答题引申考点


1.顺序表与链表的比较(两种方式的优点、缺点)

特征顺序表链表
存取(对比优缺点)

随机存储(自有优点

顺序存储

顺序存取(only)
逻辑结构和物理结构关系逻辑相邻,物理存储位置也相邻

逻辑相邻但物理上不相邻,

通过指针链接

(基本操作)

查找、删除、插入

(对比优缺点)

  • 按值:无序o(n),有序折半查找o(log以二为底的n次)

         按序号:随机o(1)(优点)

  • 删除、插入

        平均移动半个表长(缺点 需要大量移动元素)

  • 查找:

    按值/按序号:o(n)

  • 删除、插入

     只需要修改指针,快(优点)

 

 

空间分配
  • 密度存储高(优点)
  • 顺序表容易实现(优点)高级语言都有数组类型
  • 密度存储低(缺点)

      链式存储结构的存储密度小于1

  • 高级语言中有些没有指针(缺点),但操作简单(缺点)

随机存储、查找、存储密度、容易实现(顺序表的优点)

插入删除只修改指针,操作方便(链表优点)

 

2.静态链表
与顺序表一样需要分配较大空间,与链表相同插入和删除不需要移动元素需要修改指针指针域与链表不同的是它指向下一个元素在数组中的下标。(用在不支持指针的高级语言)2.静态链表:

 

3.队列需要在表头删除元素,在表尾插入元素,选用带尾结点的循环单链表方便(从队列自身逻辑结构寻找适合他的存储结构)

 

4.单链表中头结点的作用(重点简答题及编程题)

  • 使链表第一个位置上的操作和其他位置上的操作一致,无需特殊处理。开始结点的位置被放在头结点的指针域中。

  • 空表和非空表的处理得到统一。无论链表是否为空,头指针都是指向头结点的非空指针。

方便预算的实现

 

5.什么情况下适用的不同链表总结:

  •    不带头结点且有尾指针的单循环链表: 在最后一个元素之后插入一个元素和删除第一个元素。(在最后一个元素后插入,肯定要有一个指向尾结点的指针;删除第一个元素也需要指向尾结点的指针)

  •    带头结点的双向循环链表:在末尾插入节点和删除节点(删除末尾结点需要找到前驱节点,设其指针域为NULL,需要时间0[n],不能用带尾指针的单向链表)

 

6.线性表可以为空

  • 带头结点的双循环链表判空(快访问前相邻结点)

L->prior=L&&L->next=L;
  • 头指针为head的带头结点的单链表判空

head->next==NULL;
  • 头指针为head的不带头结点的单链表判空

head==NULL;

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值