什么是数据结构
将生活中大量的复杂的问题转化成特定的数据类型和特定的存储结构存储在主存储器(内存)中。为了完成某个目标(排序,求和等)而执行特定的操作。
针对同一个目标,如果用不同的数据类型和存储结构。就需要采用不同的算法进行计算。
如:从一个线性表中找出最大值。使用数组与使用链表它们对应的查找代码肯定是不一样的。
站在数据结构的角度看平时的一些基本概念
什么叫堆内存,栈内存
栈内存:系统以压栈出栈(先进先出)的方式分配的内存叫栈内存
堆内存:系统以堆排序的方式分配的内存叫堆内存
根本原因是分配内存的算法不同
什么叫队列
是为例解决时间先后顺序的一种数据结构,凡是涉及到线程先后顺序问题的都有用到队列
语法树是什么
编译原理中有个语法树这个概念,它是一种树结构。
数据库是什么
数据库是数据结构的一个狭隘版,它研究的是数据的存储问题。也是每条数据的数据结构和多条数据之间的关系。
程序是什么
程序 = 数据的存储 + 数据的操作 + 可以被计算机执行的语言。
指针
cpu与内存 用三根总线连接。它们分别是:
地址线:管理着当前CPU可以访问的内存地址
控制线:管理着当前CPU是:可读,可写。
数据线:cup处理后的数据
结构体
在定义一个结构体类型变量时,系统会自动为变量分配好内存空间,它是一个静态变量。
一般在方法间传递结构体类型变量时,是传递指针,这样避免消耗内存
数据结构在逻辑上分为线性,非线性
线性结构:数组,链表。
数组和链表是线性数据的一种存储方式
栈和队列是线性结构的一种表现形式。
什么是树
树有节点和边(指针)组成。
每一个节点都有一个父节点,但它可以有多个子节点。
根节点是个例外,它没有父节点
二叉树研究的问题是什么
是如何将非线性数据存储到线性存储空间内
平时存储的二叉树是完全二叉树,通过先,中,后序原则将完全二叉树转换成线性数据存储到线性存储器中。
完全二叉树的存储容器分为:顺序存储,链式存储。