数据结构

本文深入介绍了数据结构的基本概念,包括数据元素、逻辑结构和存储结构。接着,详细讲解了线性表的定义、特点,以及顺序表和链表的插入与删除操作。此外,还探讨了栈和队列的定义、性质及操作,如栈的先进后出原则和队列的先进先出规则。文章进一步阐述了树和二叉树的性质,以及图的概念,如最小生成树的Prime和Kruskal算法。最后,涉及查找技术,如折半查找和散列表,以及排序方法,如插入排序和堆排序。

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

一、绪论

  1. 数据(data)—所有能输入到计算机中去的描述客观事物的符号
    数据元素(data element)是数据的基本单位。
    数据项(data item)是数据元素最小单位。
    数据 > 数据元素 > 数据项
  2. 逻辑结构分为线性结构和非线性结构(集合结构、树结构、图结构或网状结构)
    存储结构(物理结构)分为顺序存储、链式存储。依赖于计算机。
    顺序存储结构:
    (顺序映像)——借助元素在存储器中的相对位置来表示数据元素间的逻辑关系。
    链式存储结构:
    (链式映像)——借助指示元素存储地址的指针表示数据元素间的逻辑关系。
    在这里插入图片描述
  3. 算法的定义及特性:
    算法是为了解决某类问题而规定的一个有限长的操作序列。
    算法的特性:
    有穷性。 一个算法必须总是在执行有穷步后结束,且每一步都必须在有穷时间内完成。
    确定性。 对于每种情况下所执行的操作,在算法中都有确切的规定,不会产生二义性,使算法的执行者或阅读者都能明确其含义及如何执行。
    可行性。 算法中的所有操作都可以通过已经实现的基本操作运算执行有限次来实现。
    输入。 一个算法有零个或多个输入。当用函数描述算法时,输入往往是通过形参表示的,在它们被调用时,从主调函数获得输入值。
    输出。 一个算法有一个或多个输出。它们是算法进行信息加工后得到的结果,无输出的算法没有任何意义。当用函数描述算法时,输出多用返回值或引用类型的形参表示。

二、线性表

  1. 线性表的定义:由n(n≥0)个数据特性相同的元素构成的有限序列称为线性表。
  2. 线性表的特点
    (1)同一性——线性表由同类数据元素组成。
    (2)有限性——由有限个数据元素组成。
    (3)有序性——线性表中的数据有先后顺序。
  3. 顺序表:
    顺序存储的特点:(1)逻辑上相邻,物理上也相邻。(2)随机存取。
    插入:插在第 i 个结点之前,其余元素需后移 n-i+1 次;
    删除:删除第 i 个结点,移动 n-i 次。
  4. 链表:
    (1)链表的特点:逻辑上相邻,物理上不一定相邻。非随机存取。
    (2)头指针是指向链表中第一个结点的指针。
    (3)头结点是在链表的首元结点之前附设的一个结点;数据域内只放空表标志和表长等信息。
    (4)首元结点是指链表中存储第一个数据元素a1的结点:
    ①单链表尾结点的条件:p->next== Null
    ②循环单链表判尾的条件:
    判尾:非空的循环单链表head的尾结点p满足( p->next==head)
    (5)单链表的插入步骤:

三、栈和队列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值