打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

数据结构与算法:修订间差异

来自陋室
删除的内容 添加的内容
XP-jia留言 | 贡献
XP-jia移动页面数据结构与算法(基础概念)数据结构与算法,不留重定向:​标题有错别字
XP-jia留言 | 贡献
修正错误
第65行: 第65行:
* '''输出''':算法产生一个或多个输出。
* '''输出''':算法产生一个或多个输出。


== 五、数据结构中的关系 ==
== 数据结构中的关系 ==


=== '''线性结构''' ===
=== '''线性结构''' ===
第82行: 第82行:
例子:社交网络中的好友关系图。
例子:社交网络中的好友关系图。


== 抽象数据类型(ADT): ==
== 抽象数据类型(ADT) ==
定义了数据和操作,但与具体实现无关。
定义了数据和操作,但与具体实现无关。



2025年2月14日 (五) 20:55的版本

研究数据结构的核心

研究数据结构的目标是设计高效的算法。核心内容包括:

  • 逻辑结构:描述数据之间的逻辑关系。
  • 存储结构:在计算机中实现逻辑结构的方式。
  • 基本操作:在数据结构上的操作,如插入、删除、查找等。

逻辑结构

线性结构

元素之间有一对一的线性关系。

例子:

  • 线性表:数据按顺序排列(如数组、链表)。
  • 栈:后进先出(LIFO)。
  • 队列:先进先出(FIFO)。
  • 串:字符序列(字符串)。
  • 数组:固定大小的连续存储单元。
  • 广义表:允许元素为另一个线性表的特殊结构。

非线性结构

元素之间关系复杂,可能有层次或网络关系。

例子:

  • :节点间有一对多的层次关系。
  • :节点间有任意多对多的关系。

数据存储结构

顺序存储结构

用连续的内存单元存储数据。

特点:

  • 易于通过索引访问。
  • 插入和删除操作相对复杂,需要移动大量元素。

链式存储结构

用指针将不连续的内存单元链接在一起。

特点:

  • 灵活,支持动态扩展。
  • 插入和删除效率高,但随机访问速度慢。

算法的定义与五个特性

算法定义

解决特定问题的一系列明确的指令。

五个特性

  • 有穷性:算法必须在有限步骤内完成。
  • 确定性:每一步有明确的含义。
  • 可行性:每一步都能在有限时间内完成。
  • 输入:算法接受零个或多个输入。
  • 输出:算法产生一个或多个输出。

数据结构中的关系

线性结构

元素之间一对一的关系,形成直线结构。

例子:链表、数组。

树形结构

元素之间一对多的关系,形成分支结构。

例子:二叉树、B树。

图形结构

元素之间多对多的关系,形成网络结构。

例子:社交网络中的好友关系图。

抽象数据类型(ADT)

定义了数据和操作,但与具体实现无关。

如栈,ADT定义了push和pop操作,而不涉及具体实现。