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

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


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;

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 线性表的定义和基本操作 - 线性表是一种数据结构,由零个或多个数据元素组成,数据元素之间是有序的,且每个数据元素只有一个前驱和一个后继。 - 基本操作包括插入、删除、查找、遍历等。 2. 线性表的顺序存储结构 - 线性表的顺序存储结构是指将线性表中的数据元素存储在一段连续的存储元中。 - 顺序存储结构的优点是随机存取,操作简高效。 - 顺序存储结构的缺点是插入、删除操作需要移动大量元素。 3. 线性表的链式存储结构 - 线性表的链式存储结构是指将线性表中的数据元素存储在一些不连续的存储元中,这些存储元可以是任意的物理位置。 - 链式存储结构的优点是插入、删除操作方便,不需要移动元素。 - 链式存储结构的缺点是不能随机存取,需要遍历整个链表才能访问某个元素。 4. 线性表链表和双向链表 - 链表是指每个节点只有一个指针指向下一个节点。 - 双向链表是指每个节点有两个指针,一个指向前一个节点,一个指向后一个节点。 5. 线性表循环链表 - 循环链表是指链表的最后一个节点的指针指向链表的第一个节点,形成一个环。 - 循环链表可以解决链表遍历到最后一个节点时需要特殊处理的问题。 6. 线性表的静态链表 - 静态链表是指使用数组来实现链表的存储结构。 - 静态链表可以解决动态分配内存的问题,但是插入、删除操作仍然需要移动元素。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值