[1] 严格意义上数据结构的概念

  数据结构,一个简单的定义:相互之间存在一种或多种特定关系的数据元素的集合。即:数据结构 = 元素集合 + 元素间关系的集合 。

  在讨论数据结构时,可以基于两个不同的层次:1.逻辑层次  2.存储层次 ( 很多专业书中也写为:逻辑结构、存储结构。但为了避免概念间的混淆,我认为 “层次” 这一表述方式更贴切 ) 。逻辑层次,是指对描述对象的单纯的数学抽象。例如:一个科研小组由1名导师、2名研究生和6名本科生构成,导师指导2名研究生,每个研究生分别指导3名本科生。将这个小组视为一个数据结构,则从逻辑层次来看,这个数据结构是一个简单的树形结构。存储层次,是指数据结构在计算机存储器中的映射,即通过特定的存储方法来反映数据结构中的逻辑关系。

[2] “程序员更常用到的” 数据结构的概念

  我们在实际情况中很少能直接涉及到数据结构的存储层次:数据结构在存储器中的物理位置——这种很底层的技术。我们更多地是基于高级语言来讨论数据结构的,如C语言。

  比如:我们用C语言中的一维数组来描述存储层次中的顺序存储结构,用C语言中的指针来描述存储层次中的链式存储结构。在这种情况下,我们可以把C语言抽象地看作一个执行C指令和C数据类型的虚拟处理器,则我们讨论的存储层次实际上是基于虚拟处理器的层次。而这个层次才是和我们接触最多的

[3] 学习数据结构时的注意点

  “数据结构” 这门课程虽然常与计算机,程序设计等联系在一起,但其实它是一门独立的课程,是一门理论性很强的课程。在学习的时候,经常要用到逻辑的、抽象的思维方式。同时也要多通过写程序来练习,这样才能避免纸上谈兵,提高自己的编程水平。

数据结构(C语言)分享笔记:数据结构的逻辑层次、存储层次的更多相关文章

  1. C语言学习笔记:12_变量的存储方式和生存期

    /* * 12_变量的存储方式和生存期.c * * Created on: 2015年7月5日 * Author: zhong */ #include <stdio.h> #include ...

  2. <数据结构与算法分析>读书笔记--利用Java5泛型实现泛型构件

    一.简单的泛型类和接口 当指定一个泛型类时,类的声明则包括一个或多个类型参数,这些参数被放入在类名后面的一对尖括号内. 示例一: package cn.generic.example; public ...

  3. 【数据结构(C语言版)系列一】 线性表

    最近开始看数据结构,该系列笔记简单记录总结下所学的知识,更详细的推荐博主StrayedKing的数据结构系列,笔记部分也摘抄了博主总结的比较好的内容. 一些基本概念和术语 数据是对客观事物的符号表示, ...

  4. Python语言数据结构和语言结构(2)

    目录 1. Python预备基础 2. Python数据类型 3. Python条件语句 4. while循环和for循环 1. Python预备基础 1.1 变量的命名   变量命名规则主要有以下几 ...

  5. 数据结构(Java语言描述)-第一章:概述

    第一章 概述 1.0 序言 自己为啥要学数据结构嘞,我觉得主要有以下三个原因: 前段时间在看并发编程时,发现aqs,corrunthashmap等底层都用到了数据结构,主要的有队列,还有链表,学习数据 ...

  6. 1. C语言中的数据结构.md

    C语言内建数据结构类型 整型 整型数据是最基本的数据类型,不过从整形出发衍生出好几种integer-like数据结构,譬如字符型,短整型,整型,长整型.他们都是最基本的方式来组织的数据结构,一般是几位 ...

  7. 数据结构C语言版 有向图的十字链表存储表示和实现

    /*1wangxiaobo@163.com 数据结构C语言版 有向图的十字链表存储表示和实现 P165 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h> ...

  8. 数据结构C语言版 表插入排序 静态表

    数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./*  数据结构C语言版 表插入排序  算法10.3 P267-P270  编译 ...

  9. 数据结构C语言版 弗洛伊德算法实现

    /* 数据结构C语言版 弗洛伊德算法  P191 编译环境:Dev-C++ 4.9.9.2 */ #include <stdio.h>#include <limits.h> # ...

随机推荐

  1. linux别名防删除

    最近有不相信rm -rf 了,虽然恢复了但是很难受啊 加个别名吧, 1.查看系统别名配置 alias 2.配置别名(临时生效) alias rm='echo do not use rm command ...

  2. scala数据类型

    # Scala数据类型 ## 1.数值类型 ### 1.1 与Java一样Scala也有8种数值类型 * Byte * Char * Short * Int * Long * Float * Doub ...

  3. OSI七层和TCP/IP四层的关系、TCP与UDP、HTTP、Socket

    HTTP(应用层协议):超文本传输协议,HTTP协议是建立在TCP协议之上的一种应用. HTTP协议详细解释 2Http详解 TCP(面向连接的传输层协议):transmission control ...

  4. 011 Container With Most Water 盛最多水的容器

    给定 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) .画 n 条垂直线,使得垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0).找出其中的两条线,使得它们 ...

  5. (转)linux 中使用ls指定输出时间格式

    linux 中使用ls指定输出时间格式 原文:http://blog.csdn.net/chaofanwei/article/details/13018753 ls -l --time-style=x ...

  6. mysql sql语句集锦

    1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- 创建 备份 ...

  7. Windows、Unix、Mac不同操作系统的换行问题-剖析回车符\r和换行符\n

    转载链接:http://blog.csdn.net/tskyfree/article/details/8121951 一.概念: 换行符‘\n’和回车符‘\r’ (1)换行符就是另起一行  --- ' ...

  8. java8Stream map和flatmap的区别

    map和flatmap的区别 map只是一维 1对1 的映射 而flatmap可以将一个2维的集合映射成一个一维,相当于他映射的深度比map深了一层 , 所以名称上就把map加了个flat 叫flat ...

  9. LVS Direct Routing 直接路由

    1. Direct Routing 直接路由 director分配请求到不同的real server, real server处理请求后直接回应给用户,这样director负载均衡器仅处理客户机与服务 ...

  10. spring transaction 初识

    spring 事务初识 1.spring事务的主要接口,首先盗图一张,展示出spring 事务的相关接口.Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibern ...