学习笔记之数据结构与算法(三)

本文介绍了线性表这一基本数据结构,包括其定义、特点及不同的存储方式,如顺序存储、链式存储等,并探讨了栈、队列等特殊线性表。

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

 学习笔记之数据结构与算法(三)

线性表

线性表是最基本,最简单,也是最常用的一种数据结构,线性表中各数据元素之间的关系是一对一的关系,也就是说在线性表中除了第一个和最后一个数据元素。其他的数据元素都是首尾相接的。线性表是以栈、队列、字符串、数组等特殊线性表的形式来使用的
线性表是由n(n>0)个数据元素(结点)组成的有限序列。

线性表的特点

  1. 有且仅有一个开始结点
  2. 有且仅有一个终结结点
  3. 内部结点都有且仅有一个直接前驱结点和一个直接后续结点
  4. 线性表还要均匀性和有序性(均匀性是指虽然不同数据表的数据元素可以是各种各样的,但是对于同一线性表的各数据元素必定具有相同的数据类型。有序性是指各数据元素在线性表中的位置只取决于它们的序列,数据元素之间的相对位置是线性的。)

线性表的顺序存储

计算机中用一组地址连续的存储单元依次存储线性表的各个数据元素。优点:存储密度大,缺点是:插入、删除等其他运算不方便

选择排序
首先遍历线性表并将最小的元素与第一个元素进行交换,随后遍历剩佘的元素将第二小的元素与第二个元素进行交换,依此类推直至排序结束。

线性表的链式存储

链式存储用若干地址分散的存储单元存储数据元素,逻辑上相邻的数据元素在物理位置上不一定相邻,必须采用附加信息表示数据元素之间的关系。

单链表
单链表也叫线性链表,由一个个结点链接而成。单链表的结点只有一个存储数据的数据域和一个称为next的指向后继结点的指针域。
循环链表
循环链表是线性表的另外一种链式存储结构,它在单链表的基础上,将表尾结点的指针域指向表头结点,整个链表形成环状结构。
双链表
双链表是可以同时在向前和向后两个方向上查找数据元素的单链表。它的结点除了数据域之外,还有previous和next两个指针域,分别指向直接前趋结点和直接后继结点

栈的中文解释是存储货物或供旅客住宿的房屋。那么这些存储的物件有什么特点呢,栈就如一个水桶,先进去的水就是栈底,最后进去的就是栈顶,原则是后进先出,先进后出。

顺序栈

顺序栈的特点
  1. 数据元素存放在连续的存储地址中
  2. 栈低位置固定不变
  3. 栈顶位置随进栈、出栈操作而变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值