考研c++数据结构 线性表高分复习笔记

本文深入探讨了线性表的定义与特性,详细讲解了线性表的两种主要存储结构:顺序结构与链式结构。包括单链表、双链表及循环链表的特点与应用场景,帮助读者理解不同结构的优缺点。

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

基础概念

A1-A2-A3-...An 数据元素被一条线串起来

定义

线性表是具有相同特性数据元素的有限序列

相同特性 把同一类事物归类,方便批量处理

有限 表中元素个数为n,n有限大,n可以为0

序列 表中元素排成一排,体现了一对一的逻辑特性(每个元素有且仅有一个前驱和后继)

存储结构

顺序结构

利用数组来实现顺序的存储,使用位置关系来体现逻辑关系

A

B

C

...

X

...

 

0

1

2

...

lengh-1

...

maxsize

链式存储结构结构(单链表)

每个元素之间散列,通过其他的位置信息(指针)指向下个元素

typedef struct LNode

{

int data; //存储数据

struct LNode *next; //指针,存储指向下一个单元的存储信息

}LNode;

LNode *L;

L=(LNode*)malloc(sizeof(LNode));

A->next = B; B->next = C; C->next = D;

 

常用的两类单链表

A结点为开始节点 C结点为尾结点

1.head-[ |*next]-[A|*next]-[B|*next]-[C|NULL]

含有头节点的链表(实际中都是用这个)

当Head->next==NULL时,为空链表

2.head-[A|*next]-[B|*next]-[C|NULL]

不含头节点的链表

当Head==NULL时,为空链表

 

找一个结点的前驱结点时,需要从头指针遍历,非常麻烦

若想要每个结点都可以快速找到前驱结点,需要再加一个前驱指针

 

链式存储结构(双链表)

每个结点增加了前驱指针

typedef struct DLNode

{

int data;

struct DLNode *next;

struct DLNode *prior;

}DLNode;

DLNode *L;

L = (DLNode)malloc(sizeof(DLNode));

A->next = B; B->next = C; C->next = D;

D->prior = C; C->prior = B; B->prior = A;

 

双链表也同样包括含有头结点的链表和不含有头节点的链表

 

双链表在找前驱时会更好找,但如果头结点受损,单链表无法找到头结点,双链表需要遍历整个链表

 

链式存储结构(循环链表)

将最后一个结点的空指针指向头结点

单链表->单循环链表

Head->next == head 链表为空

双链表->双循环链表

Head->next == head或

Head->prior == head 链表为空

对于不含头结点的链表,当Head==NULL时,链表为空

所以循环链表不论什么情况下都不会存在空指针

 

 

数据结构1800题1. 算法的计算量的大小称为计算的( )。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度 2. 算法的时间复杂度取决于( )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(1),它必须具备(2) 这三个特性。 (1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法 (2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性 C. 确定性、有穷性、稳定性 D. 易读性、稳定性、安全性 【南京理工大学 1999 一、1(2分) 【武汉交通科技大学 1996 一、1( 4分)】 4.一个算法应该是( )。【中山大学 1998 二、1(2分)】 A.程序 B.问题求解步骤的描述 C.要满足五个基本特性 D.A和C. 5. 下面关于算法说法错误的是( )【南京理工大学 2000 一、1(1.5分)】 A.算法最终必须由计算机程序实现 B.为解决某问题的算法同为该问题编写的程序含义是相同的 C. 算法的可行性是指指令不能有二义性 D. 以上几个都是错误的 6. 下面说法错误的是( )【南京理工大学 2000 一、2 (1.5分)】 (1)算法原地工作的含义是指不需要任何额外的辅助空间 (2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法 (3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界 (4)同一个算法,实现语言的级别越高,执行效率就越低 A.(1) B.(1),(2) C.(1),(4) D.(3) 7.从逻辑上可以把数据结构分为( )两大类。【武汉交通科技大学 1996 一 、4(2分)】 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值