数据结构(C语言)分享笔记:数据结构的逻辑层次、存储层次
[1] 严格意义上数据结构的概念
数据结构,一个简单的定义:相互之间存在一种或多种特定关系的数据元素的集合。即:数据结构 = 元素集合 + 元素间关系的集合 。
在讨论数据结构时,可以基于两个不同的层次:1.逻辑层次 2.存储层次 ( 很多专业书中也写为:逻辑结构、存储结构。但为了避免概念间的混淆,我认为 “层次” 这一表述方式更贴切 ) 。逻辑层次,是指对描述对象的单纯的数学抽象。例如:一个科研小组由1名导师、2名研究生和6名本科生构成,导师指导2名研究生,每个研究生分别指导3名本科生。将这个小组视为一个数据结构,则从逻辑层次来看,这个数据结构是一个简单的树形结构。存储层次,是指数据结构在计算机存储器中的映射,即通过特定的存储方法来反映数据结构中的逻辑关系。
[2] “程序员更常用到的” 数据结构的概念
我们在实际情况中很少能直接涉及到数据结构的存储层次:数据结构在存储器中的物理位置——这种很底层的技术。我们更多地是基于高级语言来讨论数据结构的,如C语言。
比如:我们用C语言中的一维数组来描述存储层次中的顺序存储结构,用C语言中的指针来描述存储层次中的链式存储结构。在这种情况下,我们可以把C语言抽象地看作一个执行C指令和C数据类型的虚拟处理器,则我们讨论的存储层次实际上是基于虚拟处理器的层次。而这个层次才是和我们接触最多的。
[3] 学习数据结构时的注意点
“数据结构” 这门课程虽然常与计算机,程序设计等联系在一起,但其实它是一门独立的课程,是一门理论性很强的课程。在学习的时候,经常要用到逻辑的、抽象的思维方式。同时也要多通过写程序来练习,这样才能避免纸上谈兵,提高自己的编程水平。
数据结构(C语言)分享笔记:数据结构的逻辑层次、存储层次的更多相关文章
- C语言学习笔记:12_变量的存储方式和生存期
/* * 12_变量的存储方式和生存期.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include ...
- <数据结构与算法分析>读书笔记--利用Java5泛型实现泛型构件
一.简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内. 示例一: package cn.generic.example; public ...
- 【数据结构(C语言版)系列一】 线性表
最近开始看数据结构,该系列笔记简单记录总结下所学的知识,更详细的推荐博主StrayedKing的数据结构系列,笔记部分也摘抄了博主总结的比较好的内容. 一些基本概念和术语 数据是对客观事物的符号表示, ...
- Python语言数据结构和语言结构(2)
目录 1. Python预备基础 2. Python数据类型 3. Python条件语句 4. while循环和for循环 1. Python预备基础 1.1 变量的命名 变量命名规则主要有以下几 ...
- 数据结构(Java语言描述)-第一章:概述
第一章 概述 1.0 序言 自己为啥要学数据结构嘞,我觉得主要有以下三个原因: 前段时间在看并发编程时,发现aqs,corrunthashmap等底层都用到了数据结构,主要的有队列,还有链表,学习数据 ...
- 1. C语言中的数据结构.md
C语言内建数据结构类型 整型 整型数据是最基本的数据类型,不过从整形出发衍生出好几种integer-like数据结构,譬如字符型,短整型,整型,长整型.他们都是最基本的方式来组织的数据结构,一般是几位 ...
- 数据结构C语言版 有向图的十字链表存储表示和实现
/*1wangxiaobo@163.com 数据结构C语言版 有向图的十字链表存储表示和实现 P165 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h> ...
- 数据结构C语言版 表插入排序 静态表
数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P270 编译 ...
- 数据结构C语言版 弗洛伊德算法实现
/* 数据结构C语言版 弗洛伊德算法 P191 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <limits.h> # ...
随机推荐
- Ubuntu下nagios安装(来源官网)
Ubuntu下nagios安装(来源官网) https://assets.nagios.com/downloads/nagioscore/docs/nagioscore/4/en/toc.html h ...
- htmlunit最具有参考意义项目
### HtmlUnit What? - 项目1 https://gitee.com/dgwcode/spiderTmallTradeInfo - 项目2 https://gitee.com/dgwc ...
- java中存在垃圾回收机制,但是还会有内存泄漏的问题,原因是
答案是肯定的,但不能拿这一句回答面试官的问题.分析:JAVA是支持垃圾回收机制的,在这样的一个背景下,内存泄露又被称为“无意识的对象保持”.如果一个对象引用被无意识地保留下来,那么垃圾回收器不仅不会处 ...
- mycat1.6.5分片(字符串拆分hash)
https://blog.csdn.net/webnum/article/details/78313525 分片规则:字符串拆分hash 一.conf/schema.xml文件 <?xm ...
- HBase 相关API操练(一):Shell操作
HBase 为用户提供了一个非常方便的使用方式, 我们称之为“HBase Shell”. HBase Shell 提供了大多数的 HBase 命令, 通过 HBase Shell 用户可以方便地创建. ...
- 高可用数据同步方案-SqlServer迁移Mysql实战
简介 随着业务量的上升,以前的架构已经不满足业务的发展,数据作为业务中最重要的一环,需要有更好的架构作为支撑.目前我司有sql server转mysql的需求,所以结合当前业务,我挑选了阿里云开源的一 ...
- pat1084. Broken Keyboard (20)
1084. Broken Keyboard (20) 时间限制 200 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue On a ...
- Cucumber 步骤中传Data Table作为参数
引用链接:http://cukes.info/step-definitions.html Data Tables Data Tables are handy for specifying a larg ...
- 使用URLRewriter实现URL重写
优点 1)隐藏真实URL,提高安全性 2)更加友好的URL,好记(看博客园就行知道啦) 3)便于搜素引擎收录 ......... 可能的缺点 使用URL重写可能导致: 1)图片路径的问题 2)CSS路 ...
- 2019年我的nodejs项目选型
选型项目比较激进.发现基于 go 语言的工具变多了.