数据结构概述(逻辑结构与存储结构概念详解)

本文详细介绍了数据结构中的逻辑结构,包括集合、线性结构(线性表、栈、队列、串)和非线性结构(数组、广义表、树、堆、图)。同时,阐述了物理结构/存储结构,如顺序结构、链式结构和索引结构,强调了数据结构在算法设计中的重要性。
摘要由CSDN通过智能技术生成

目录

一.一些基本概念

二.逻辑结构

1.集合结构:

2.线性结构:

1)线性表:

2)栈

3)队列

4)串

3.非线性结构:

1)数组

2)广义表

3)树

4)堆

5)图

三.物理结构/存储结构

1.顺序结构:

2.链式结构:

3.索引结构:


数据结构就是研究数据的逻辑结构和物理结构以及它们之间的相互关系,并对这种结构定义相应的运算,且确保经过这些运算后所得到的新结构仍然是原来的结构类型。简单来说,就是计算机存储、组织数据的方式。

一.一些基本概念

程序=数据结构+算法;同一逻辑结构可以对应不同的存储结构,算法的设计取决于数据的逻辑结构,算法的实现依赖于指定的存储结构。

数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称;
数据元素:数据(集合)中的一个“个体”,数据及结构中讨论的基本单位;
数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据项组成;
数据类型:在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等。

二.逻辑结构

反映数据元素之间的逻辑关系。

1.集合结构:

数据元素除了同属一个集合外,它们之间没有任何关系。

2.线性结构:

若结构是非空集,则有且仅有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。简单地说,就是数据之间是一对一的关系。有线性表、栈、堆、队列、串等。

1)线性表:

是n个具有相同特性的数据元素的有限序列;

数据元素之间一对一的关系,除了首尾数据元素外,其它数据元素都是首位相接的;

线性指逻辑层次上的线性,不考虑存储层次,双向链表和循环链表也是线性表;

单向链表:除了首尾数据元素外,其它数据元素都是首位相接的。

å¨è¿éæå¥å¾çæè¿°

双向链表:由节点组成,每个数据结点中都有两个指针,分别指向直接后继和直接前驱。

循环单链表:把单链表改为循环单链表的过程是将它的尾结点next指针域由原来为空改为指向头结点,整个单链表形成一个环。由此,从表中任一结点出发均可找到链表中的其他结点。

å¨è¿éæå¥å¾çæè¿°

循环双链表:把双链表改为循环双链表的过程是将它的尾结点next指针域由原来为空改为指向头结点,将它的头结点prior指针域改为指向尾结点,整个双链表形成两个环。

å¨è¿éæå¥å¾çæè¿°

线性表-双链表&循环链表(Ⅳ)_—Miss. Z—的博客-CSDN博客

2)栈

栈只能从表的一端存取数据,另一端是封闭的;

在栈中存/取数据,必须遵循“先进后出”原则,即最先进栈的元素最后出栈;

开口端称为栈顶,距离栈顶最近的元素称为栈顶元素,封口端称为栈底,相应的有栈底元素;

向栈中添加元素称为“进栈/入栈/压栈”,从栈中提取指定元素称为“出栈/弹

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值