`

0_数据结构基础_基本概念和内存

 
阅读更多

 

 

1.0 数据结构概述:

 

   我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器中,

  以及在此基础上为实现某个功能(eg:查找/删除某个元素,对所有元素排序)而执行的相应操作(即算法)

 

  eg: 存储100000个元素 (用链表结构保存)

  eg: 公司人事架构 (用树表示)

  eg: 车站交通站点之间最短行车路线 (用图表示)

 

数据结构 = 复杂问题的数据和数据之间关系以何种方式保存到计算机内存中

算法 = 对存储数据的操作,依附于数据,数据结构不一样,算法就不一样

程序 = 数据的存储 + 数据的操作 + 可以被计算机执行的语言

 

1.1 衡量算法的标准

 

a) 时间复杂度:程序大概要执行的次数,注意并非执行的时间,不要望文生义,

                         1 因为不同的机器配置不一样,而且机器硬件更新很快,无法用运行时间来决定此算法效率

                         2 判断程序效率也仅仅是看程序核心算法的循环次数

b) 空间复杂度:算法执行中大概所占用的最大内存

c) 难易程度: 即此写法是否容易被别人看得懂

d) 健壮性:

 

 

1.2 数据结构特点:

 

a) 是软件的基础,eg: 数据库的表,记录,字段其实也是数据结构的一种表现形式,涉及到了以何种格式和各种属性之间用何种关系存储到物理介质

b) 学了之后什么也做不了, eg: 学了html立马能做网页,有点所见所得的感觉, 但数据结构是一种内功课,需要时间的发酵才有看到效果。

 

 

1.3 预备知识:

 

1.3.0 cpu和内存之间的关系


 

内存几个知识点:

a) 用来存储数据的设备,存储速度介于寄存器和硬盘之间

b) 是CPU唯一可以访问的大容量存储设备,所有硬盘中的程序和数据必须调入内存后才可以被CPU执行

c) 内存的问题是软件开发中最核心的问题 eg:内存分配,释放,何时分配,何时释放,by who,访问权限

d) 是多字节组成的线性一维存储空间

e) 基本单位是字节

f) 每个字节占8位,

g) 内存中每个字节对应一个唯一编号(地址)

 

 

软件运行和内存的关系:

a) 软件运行前,向操作系统申请内存空间,当内存空间充足时,操作系统会分配一段内存空间,并将软件在外存中的软件拷贝一份存入该内存空间中,然后启动该软件。

b) 软件运行期间,占用的内存空间不会被分配给别的软件(独占)

c) 软件运行完,操作系统回收该软件占用的内存空间(1仅是收回了访问控制权限,2不会清空该内存空间遗留的数据)

 

 

 

 

2 线性结构

 

2.0 概念: 把所有节点用一条线穿起来

2.1表现方式:

  a) 连续存储(数组)

   

  b) 离散存储(链表)

 

2.2线性结构的常见应用:

a) 栈

b) 队列

 

 

2.3专题: 递归

 

1:  1+2+3+4+...+100  递归和循环的转换

2: 阶乘

3: 汉诺塔

4: 走迷宫

 

 

3非线性结构:

 

3.1表现方式:

a) 树

b) 图

 

 

 

 

4查找和排序:

 

折半查找

 

排序:

冒泡

插入

选择

快速

归并

 

 

5java中的容器和数据结构相关知识

 

Iterator接口

Map

哈希表

 

 

 

 

6 知识拾遗:

 

堆: 分配内存的方式,不是存储数据的结构,因此在数据结构中,是不存在堆的概念的。

 

  • 大小: 15.7 KB
分享到:
评论

相关推荐

    数据结构上机_顺序表基本操作_数据结构基础_

    在本课题中,我们将深入探讨"数据结构上机_顺序表基本操作_数据结构基础_"这一主题,这涉及到一系列在顺序表上的基本操作,包括初始化、输出、插入、删除、计算长度、逆置、排序以及合并有序顺序表等。 顺序表是一...

    数据结构(清华严蔚敏)_数据结构01 数据结构(清华严蔚敏)_数据结构01

    在《数据结构(清华严蔚敏)_数据结构01》中,严蔚敏教授可能会详细讲解这些基本概念,并通过实例来演示它们的工作原理。例如,他可能会介绍如何使用栈来解析括号匹配问题,或者如何使用队列实现广度优先搜索。此外...

    shujujiegou.rar_数据结构 库_数据结构代码

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中高效地组织和管理数据,以便进行快速检索、插入和删除等操作。这个名为"shujujiegou.rar_数据结构 库_数据结构代码"的压缩包文件提供了一个可重用的数据结构...

    数据结构教材_examine1xg_数据结构教材_数据结构C语言_

    1. **基本概念**:数据结构是存储和组织数据的方式,包括数组、链表、栈、队列、树、图等。这些基础结构对于理解算法的运作至关重要,因为它们决定了数据的访问速度和操作复杂性。 2. **数组**:数组是最简单也是最...

    1.1_数据结构的基本概念 (2)1

    《数据结构的基本概念》 在计算机科学中,数据结构是一门至关重要的学科,它涉及到如何有效地组织和存储数据,以便于高效地访问和操作。本章主要探讨数据结构的基础概念,为后续深入学习打下坚实基础。对于准备参加...

    数据结构基本概念归纳

    总结来说,数据结构和算法是编程和系统设计的基础,理解并掌握这些基本概念对于提升程序效率和解决复杂问题至关重要。无论是数据元素、数据结构还是算法,都是为了更好地组织和操作数据,从而提高软件系统的性能和...

    专家讲述C语言数据结构.rar_c 数据结构_c语言数据结构_数据结构

    而数据结构则是计算机科学中一个核心的概念,它研究如何有效地组织和存储数据,以提高算法的效率。"专家讲述C语言数据结构"这个主题涵盖了这两方面的知识,旨在帮助程序员深入理解和掌握C语言以及数据结构的应用。 ...

    shujujiegou.rar_c 数据结构_数据结构_栈_链表 实现_顺序表

    数据结构是计算机科学中的核心概念,它...掌握这些基本数据结构的实现和应用是成为一名优秀程序员的基础。通过对这些源代码的学习,你可以更好地理解数据结构的效率和局限性,这对于优化算法和设计高效软件至关重要。

    sequencial-table.rar_Table_windows table_数据结构_数据结构 C语言

    在IT领域,数据结构是计算机科学中的核心概念,它研究数据如何在计算机中高效地组织和存储,以便进行各种操作。在这个"sequencial-table.rar"压缩包中,我们聚焦于一个特定的数据结构——顺序表,它是数据结构的基础...

    【数据结构】算法集锦.rar_vb数据结构_数据结构

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中有效地组织和管理数据,以便进行高效的操作。VB(Visual Basic)是一种流行的编程语言,尤其在初学者和小型应用开发中广泛应用。将数据结构与VB结合,可以...

    data_structure_exercise.rar_struct_structure exerci_习题_数据结构_数据结构

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中有效地组织和管理数据,以便进行高效的操作。这个压缩包文件“data_structure_exercise.rar”显然提供了丰富的数据结构习题及答案解析,对于学习和理解数据...

    【通关宝典】02142数据结构导论_【通关宝典】02142数据结构导论_2142_数据结构导论_自考_

    在“【通关宝典】02142数据结构导论.pdf”这个资料中,学生可以找到详细的理论讲解、实例分析以及可能的自考考试题目,帮助他们全面理解和掌握数据结构的基本概念、原理和应用。对于自学者来说,这是一个宝贵的资源...

    1_算法和数据结构的基本概念[借鉴].pdf

    这些基础数据结构和算法是软件开发中不可或缺的工具,理解它们的特性和操作方式对提高代码效率和解决实际问题至关重要。在实际应用中,合理选择和设计数据结构以及优化算法,能够有效提升软件性能,降低资源消耗,是...

    数据结构_speedtco_c_数据结构_源码

    这个压缩包的学习资源对于初学者来说是非常宝贵的,它不仅可以帮助理解数据结构的基本概念,还可以通过实际操作加深理解。通过阅读和修改源代码,你可以进一步探索其他数据结构,如栈、队列、树和图等。这些知识对于...

    数据结构与算法分析--C语言描述_数据结构与算法_

    此PDF教材可能涵盖这些基本概念,并通过实例代码展示C语言中如何实现这些数据结构和算法。学习者不仅可以了解理论知识,还能动手实践,提升编程能力。通过学习,读者应能理解各种数据结构的特点和适用场景,掌握常见...

    数据结构_基于C++数据结构源码_数据结构_silent2pg_

    数据结构是计算机科学中的核心概念,它涉及到如何在内存中有效地组织和管理数据,以便进行高效的操作。在C++编程语言中,数据结构的实现往往需要深入理解内存管理、指针操作以及C++的特性。"silent2pg"可能是这个...

    数据结构(1)_链表_树_数据结构_4321_图_

    1. 绪论:这部分通常介绍数据结构的基本概念,包括定义、作用以及数据结构的重要性。它可能会探讨不同数据结构之间的区别,以及何时选择哪种数据结构。 2. 线性表:线性表是最基本的数据结构之一,包括顺序表和链表...

    数据结构_数据结构_

    本书首先会介绍基本的数据结构概念,包括数组、链表、栈和队列。数组是最基础的数据结构,它是元素类型相同的固定大小的序列,可以通过索引来访问每个元素。链表则是一种动态的数据结构,它的元素(节点)可以在内存...

    严蔚敏_数据结构_课件

    通过严蔚敏教授的《数据结构》课件,不仅可以掌握数据结构的基本概念和操作,还能深入理解它们在实际编程中的应用,为后续的软件开发和算法设计打下坚实基础。课件中的PPT形式使得学习更为直观,易于理解和记忆,是...

    数据结构和算法_数据结构_C++中的数据结构和算法_

    数据结构和算法是计算机科学的基础,对于理解和解决复杂问题至关重要。C++作为一种强大的编程语言,提供了丰富的工具来实现各种数据结构和算法。本资源聚焦于C++中的数据结构和算法,旨在帮助您深入掌握这些核心概念...

Global site tag (gtag.js) - Google Analytics