美文网首页程序员技术文
新手数据结构笔记

新手数据结构笔记

作者: 独孤囚书 | 来源:发表于2016-01-09 05:40 被阅读485次

由于现实生活中的事物太过于复杂,以至于我们用到的编译软件只能给我们简单的几种类型,,如int,char,float等,但是我们的世界并不是那么简单。由于类型的不足,数据结构应运而生。数据结构的本质其实就是定义一个复杂的类型,然后再定义了类型的行为。假如把我们现实生活中的时间定义成一个结构体,那么它的结构体组成就是它的基本属性(年月日时分秒),而它的行为就是一个函数(不停的增加),因为现实生活的时间只有一种行为,那就是一直的走下去。

数据结构的意思有两种,一个是数据的逻辑结构,如:线性表,树,图。这是在逻辑中人为构想出的结构。另外一种是物理储存结构,如不需要指针的数组是储存在一块连续的物理内存中,而需要指针的结构,因为它的下一个数据元素的地址是未知的,所以总是需要为新的数据元素申请新的结点空间,并又上一个结点的指针指向下一个结点的首地址。基本上每一种逻辑上的结构体,都能又两种储存方式储存,而这两种方式的结构体函数和操作函数也会有细微的差别。

所以,我们只需要记住每个结构体有那些组成部分就好了,至于它的操作,也是操作的函数实现,可以根据它的结构来推断出来。值得注意的是如果一个结构体有头节点,那么它的头指针是指向头节点的,再又头节点的指针指向第一个数据元素。如果没有头节点的结构体,那么它的头指针是直接指向它的第一个数据元素。所以有头节点时和无头结点是的操作函数有略微的不同,应注意。

在明白了结构体的组成之后,还需要了解特殊结构体的特殊属性,如:堆栈与队列(其实这些特殊结构体也是前人发明创造出来的,能够完成一些特殊的数据处理,所以这些属性都是死的,记下了应该不难)。并且在编写操作函数时应该注意特殊属性的影响。

除了操作函数之外的复杂函数(比如说遍历算法等),这些因为是根据结构体的结构为了完成某种目的而编写的函数,而计算机又太笨,所以它只会一步一步的做。所以我们只需要明白一步一步是怎么做得,然后运用数学方法归纳总结,再用高级语言尽量写的简洁点,降低我们的劳动量就好了。如果实在是不能记住,那我们只能用伪代码(不注重细节,无法运行,只有算法)的形式,让老师尽量看懂,明白你的思路。

还有一点,由于我们定义了新的结构体也就是类型,所以这些结构体都需要一个初始化的函数,它的作用就是,当你建立了一个结构体的对象时,需要对他赋值(也就是初始化的时候)需要调用初始化函数(也就是c++中的构造函数),才能完成初始化。

��有什么不对,请指出..初学者的理解肯定还是太肤浅

相关文章

  • 《学习小组Day5笔记--旮旯里的山大王》

    Day5-数据结构笔记。 新手起步: 抄笔记: 获取示例数据:在公众号--生信星球 后台回复:“数据类型”即可获得...

  • 新手数据结构笔记

    由于现实生活中的事物太过于复杂,以至于我们用到的编译软件只能给我们简单的几种类型,,如int,char,float...

  • 数据结构回顾学习-基础知识

    数据结构回顾学习笔记 这次数据结构回顾笔记,是我对数据结构回顾学习的笔记。回顾过程是参考易百教程网站上数据结构教程...

  • 学习小组Day5笔记—白兔儿溜溜

    R语言数据结构 新手笔记R的赋值符号不是等号,而是<-在Console 控制台输入命令,相当于Linux的命令行R...

  • WGCNA新手入门笔记(含代码和数据)

    小张聊科研WGCNA新手入门笔记(含代码和数据) WGCNA新手入门笔记2(含代码和数据)

  • iOS异步单元测试简单例子

    新手,一点笔记。

  • 总目录

    总目录 Statistics笔记 Udacity笔记: 新手须知http://www.jianshu.com/p/...

  • Redis深度历险笔记

    Redis深度历险笔记 基础与应用 Redis基础数据结构 5种基础数据结构:string、list、hash(字...

  • Observer 观察者模式

    设计原则学习笔记 设计模式学习笔记 作用 使数据结构的变换可以从数据结构主动通知到观察者处。同时方便观察者和被观...

  • alg4th-1.3

    algorithm 4th笔记(1.3) 封装数据结构 Bag,Stack,Queue 三种数据结构各有各的特点,...

网友评论

    本文标题:新手数据结构笔记

    本文链接:https://www.haomeiwen.com/subject/rkfqkttx.html