20150628菜鸟对数据结构的 疑问

数据结构主要讨论数据的逻辑结构、物理结构、以及对各种数据结构进行的运算。

1数据结构: 分逻辑结构和物理结构

2数据的运算定义在逻辑结构上,每种逻辑结构都有运算的集合,增删改查只是在抽象的数据上的一系列抽象的操作,抽象操作只知道这些操作是做什么,不考虑怎么做,

只有确定了存储结构之后,才考虑如何具体实现这些运算。讨论数据结构是为了提高数据处理的时间和空间效率。

3逻辑结构的表现方式:二元关系 B=(D,R) ;图

逻辑结构:线性  非线性

4物理结构:存放数据元素 以及 元素之间的前后件关系 ;

逻辑结构根据需要可以表示成多种存储结构:

常用存储结构即物理结构:

4.1顺序存储方式:每个存储点存储一个数据元素,所有存储结点相继存储在一个连续的存储区域;存储结点之间的位置关系表示数据元素之间的逻辑关系。

4.2链式存储方式:每个存储结点不仅含有各种元素,还包括指针,指向一个与本结点有逻辑关系的结点,即用指针表示逻辑关系;

4.3索引存储方式:每个存储结点之存储一个数据元素,所有的存储结点连续存放,此外,增设一个索引表。

4.4散列存储方式:每个存储结点只含有一个元素,数据元素按照散列函数确定存储位置。

数据的逻辑结构与存储结构不一定相同,一种数据的逻辑结构可以根据需要表示成多种存储结构,

采用不同的存储结构,数据处理的效率不一样。

5、线性表 及其顺序存储结构、链式存储结构

6、栈和队列:栈及其运算、队列及其运算、循环队列及其运算

7、树与二叉树:二叉树的存储结构和遍历(前序中序后序遍历)

8、查找技术:顺序查找,二分查找

9、排序技术:

交换类排序(冒泡、快速),插入类排序(简单插入、希尔排序),选择类排序(简单选择排序,堆排序)

时间: 2024-10-07 05:22:33

20150628菜鸟对数据结构的 疑问的相关文章

Linux怎么读? Linux读音考古一日游

Linux怎么读?  Linux读音考古一日游/*凡是准备踏入Linux大门的叉子们(N年不关注了,不知道这个称呼是否还有),都必须经历疑问 那就是linux到底怎么读? 也许有些人很容易 什么里纽克斯 李纳克斯 随便称呼(毕竟发音也是自由的没有统一的标准) 但作为一个it业的newbie & Perfectionist 不标准的发音给人感觉不专业,尽管最重要的干货是我掌握了多少Linux. 但是我认为这个一个态度问题.和在最初练习盲打一样.错误的习惯一旦养成就很难改正,为什么当初不坚持一下养成

大数据 hadoop pig hive 关系

初接触hadoop技术的朋友肯定会对它体系下寄生的个个开源项目糊涂了,我敢保证Hive,Pig,HBase这些开源技术会把你搞的有些糊涂,不要紧糊涂的不止你一个,如某个菜鸟的帖子的疑问,when to use Hbase and when to use Hive?....请教了^_^没关系这里我帮大家理清每个技术的原理和思路. Pig 一种操作hadoop的轻量级脚本语言,最初又雅虎公司推出,不过现在正在走下坡路了.当初雅虎自己慢慢退出pig的维护之后将它开源贡献到开源社区由所有爱好者来维护.不

【C语言】【数据结构】菜鸟学习日志(四) 用二叉树实现非递归排序

唉,由于要备战考研,这篇博文可能是我这一年最后一次更新啦! 其实断断续续的也没有写很多,而且大多都是很初级.很简单的东西,没有和大家分享什么高阶的东西.这也正应了我们<菜鸟学习日志>的标题嘛! 不过说回来我还是很喜欢写博文的.一方面总结学到的知识,以后也可以自己看看别做了就忘了:另一方面,写博文也让我在学习的过程中更加认真,以免分享了错误的知识. 写的东西好不好呢是一说,好像有一些点击量,不过看的人估计也不多.只是我还算乐在其中吧! 大学生活说到底过得有点浪了,导致我苦逼地走向了考研的不归路-

C#中使用Redis不同数据结构的内存占有量的疑问和对比测试

最近在大量使用Redis来进行数据统计前的清洗和整理,每天的数据量超5千万+,在开发过程中,数据量小,着重注意业务规则的处理,在上线基本测试后发现了大量的问题,其中之一就是Redis存储数据过多,内存的使用量大大增加.进过简单分析,对存储非常频繁的实体类进行了改进,字段名字进行缩写处理,一下子就减少了很多内存使用量.在对Redis的研究过程中,发现了以下这篇文章:Redis上踩过的一些坑-美团 ,发现其中 有一节内容:“四.redis内存使用优化 ”,对Redis不同的存储结构的使用量进行了对比

【菜鸟入门】数据结构之5大排序

排序,是将一组任意排列的数据元素重新排列成一个按键值有序的序列的过程,一般以键值的比较和记录移动为标准操作.它是程序设计的基础,一个优秀的算法离不开切实情景的排序方法. 分类: 排序有两种: 内部排序(InternalSorting):待排序的记录全部存放在计算机内存中进行排序的过程 外部排序(ExternalSorting):指待排序记录的数量很大,以至于内存不能容纳全部记录,在排序过程中尚需外存进行访问的排序过程 我们通常所说的5大排序,是编程者运用到程序中的排序方法,一般也被认为是内部排序

MySQL索引背后的数据结构及算法原理 --转

写在前面的话 在编程领域有一句人尽皆知的法则“程序 = 数据结构 + 算法”,我个人是不太赞同这句话(因为我觉得程序不仅仅是数据结构加算法),但是在日常的学习和工作中我确认深深感受到数据结构和算法的重要性,很多东西,如果你愿意稍稍往深处挖一点,那么扑面而来的一定是各种数据结构和算法知识.例如几乎每个程序员都要打交道的数据库,如果仅仅是用来存个数据.建建表.建建索引.做做增删改查,那么也许觉得数据结构和这东西没什么关系.不过要是哪天心血来潮,想知道的多一点,想研究一下如何优化数据库,那么一定避免不

菜鸟nginx源码剖析数据结构篇(三) 单向链表 ngx_list_t[转]

菜鸟nginx源码剖析数据结构篇(三) 单向链表 ngx_list_t Author:Echo Chen(陈斌) Email:[email protected] Blog:Blog.csdn.net/chen19870707 Date:October 23h, 2014 1.ngx_list优势和特点 ngx_list _t是一个顺序容器,它实际上是动态数组和单向链表的结合体,扩容起来比动态数组简单的多,可以一次扩容一个数组,所以说它结合了 链表插入删除不需要移动的 和 数组下标快速索引 的优势

T4模板:T4模板之菜鸟篇

一.废话 T4(Text Template Transformation Toolkit)是微软官方在VisualStudio 2008中开始使用的代码生成引擎.在 Visual Studio 中,"T4 文本模板"是由一些文本块和控制逻辑组成的混合模板,它可以生成文本文件. 在 Visual C# 或 Visual Basic 中,控制逻辑编写为程序代码的片段.生成的文件可以是任何类型的文本,例如网页.资源文件或任何语言的程序源代码.现在的VS中只要与代码生成相关的场景基本上都能找T

菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表ngx_chain_t

菜鸟nginx源代码剖析数据结构篇(八) 缓冲区链表 ngx_chain_t Author:Echo Chen(陈斌) Email:[email protected]mail.com Blog:Blog.csdn.net/chen19870707 Date:Nov 6th, 2014 1.缓冲区链表结构ngx_chain_t和ngx_buf_t nginx的缓冲区链表例如以下图所看到的.ngx_chain_t为链表.ngx_buf_t为缓冲区结点: 2.源码位置 头文件:http://trac.