计算机基础笔记(四)—数据结构

前言

不必害怕未知,无需恐惧犯错,做一个Creator!

目录

  • 前言
  • 数组
  • 链表
  • 栈(LIFO)
  • 队列(FIFO)
  • 广义线性表

定义
有特殊关系的数据的集合,能被单独或作为一个整体被访问
抽象数据类型
抽象数据类型就是与该数据类型有意义的操作,封装在一起的数据类型

数组

定义: 元素的顺序集合,通常这些元素都具有相同的数据类型
两种标识符: 数组的名字和各个元素的名字
多维数组存储配置: 大多数计算机使用行主序存储
数组的操作:
查找元素、元素插入、元素删除、检索元素、元素遍历(被用于每个元素上的操作)
适用范围: 插入和删除操作少,涉及大量查找和检索操作

链表

定义: 一个数据的集合,每个元素包含下一个元素的地址
链表元素=数据+链指针
链表名: 头指针的名字
节点名: 如果指向节点的指针称为P,我们称节点为*P,数据部分和链部分分别为(*P).data和(*P).link
链表操作
查找链表
链表的查找算法只能是顺序的,因为链表中的节点没有特定的名字。
插入节点
找到节点后,改变插入位置指针值
删除节点
找到节点后,指针从后往前赋值
遍历链表
初始遍历指针,依次操作
适用范围: 如果需要大量的插入和删除,那么链表是合适的结构,但查找一个链表比一个数组要慢

栈(LIFO)

定义: 栈是一种限制线性列表,该类列表的添加和删除只能在“栈顶”完成。
栈的操作: 建栈(stack)、入栈(push)、出栈(pop)、空(empty)
适用范围:
倒转数据项
配对数据项

队列(FIFO)

定义: 队列是一种线性列表,该表中的数据只能在尾部的一段插入,头部删除。
队列的操作: 建队列、入列、出列、空
队列应用: 在线电子商务应用程序,如处理用户需求、任务和指令

广义线性表

插入和删除操作可以在任何地方进行,元素按关键字顺序排列
线性表的操作: 建表、插入、删除、检索、遍历、空
适用范围: 元素被随机存取或顺序存取的状况

一组有限的元素,称为节点
一组有限的有向线段用来连接节点,称为
没有节点进入的弧,称为
没有弧出去的节点,称为叶子
二叉树:
一棵树,且其中没有一个节点所含有的子树的个数超过两个
递归定义:二叉树是一颗空树或由一个根节点和两颗子树构成,而每颗子树也是二叉树
二叉树的遍历
深度优先和广度优先
前序遍历:根左右,中序遍历:左根右,后序遍历:左根右
二叉树的应用与实现
表达式树
二叉搜索树:双指针链表实现

定义: 一组节点和一组顶点间的连线构成的一种抽象数据类型
特点: 图的节点有一个或多个双亲


提示:仅供参考。若有错误不足,欢迎批评指正。该文章仅供参考,欢迎互相学习交流。

感谢你的阅读,期待你的关注收藏点赞!

你可能感兴趣的:(计算机基础,数据结构)