随笔分类 - 数据结构与算法
摘要:我们在上一章中,学习了二叉树的数据结构。因为二叉树的特殊性,它不同于普通的树,所以可以使用顺序存储结构来存储。但是,用顺序存储结构会存在浪费空间的弊端。之后,我们学习了二叉链表。用链式存储结构存储树,结点结构为一个数据域data,两个指针域lchild、rchild。树的数据结构讲完了,但是没有讲怎样生成一棵二叉树。今天,我们来学习怎样生成一棵二叉树。 1.生成二叉树: 要想生成一棵二...
阅读全文
摘要:上一篇,我们学习了二叉树的一些属性,定义,种类等。今天,我们主要学习它的存储结构、基本操作、与经典算法。二叉树之所以在数据结构中那么重要,正是因为它的存储结构、它的严谨规范。同时,也衍生了很多关于二叉树的经典算法,例如下面我们要学习的赫夫曼编码。不论,我们将来是做程序员、还是DBA。数据结构,是最...
阅读全文
摘要:大家好,今天继续学习树的数据结构。在上一章,我们讲树的孩子兄弟表示法时,提到了二叉树。今天,我们就来学习二叉树的相关性质。一、二叉树定义: 二叉树(Binary Tree):n(n≥0)个结点的有限集合,该集合或者为空集(为空时,称为空树),或者由一个根结点、两棵互不相交、称为根结点的左子树、右子...
阅读全文
摘要:hey,我们继续上篇文章学习树。上篇文章,我们主要讲了树的一些基本概念、定义,抽象数据结构。今天,我们要学习它的数据结构,让我们开始学习吧。树的存储结构: 一讲到存储结构,就会想到顺序存储与链式存储,让我们来回顾一下它们的概念。顺序存储,就是用一组连续的内存地址来存储数据元素,我们一般用一维数组来...
阅读全文
摘要:大家好,好久没有发表文章了。最近忙项目,没有时间学习数据结构与算法。因为快放假了,公司没什么活。本人又不准备回老家,所以腾出时间来学习数据结构。今天,我们要学习的数据结构,可以说是最最重要,应用最广的数据结构-----树。好了,闲话不多说,我们开始吧。树的概念:图6-2-1就是一棵树,由图我们可以得...
阅读全文
摘要:前面两篇文章,分别介绍了字符串的概念、抽象数据类型、KMP模式匹配算法。这篇文章,我们来学习字符串的一些常用算法。字符串的相关操作算法StrAssign:/*功能:生成一个其值等于Chars的串T*/Status StrAssign(String T, char *chars){ int i...
阅读全文
摘要:好郁闷的事情,发生在了我的身上。昨天使用Live Writer写了>,明明已经发布成功,本人亲自查看过。当我写完>,发布成功后。我的博客,只有新发布的数据串(中),数据串(上)不翼而飞了。真的好郁闷阿,备份也找不到了。看来古人的话还是有道理的:”工欲善其事,必先利其器”。要怪只能怪自己不会使用Li...
阅读全文
摘要:KMP模式匹配算法 我们的前辈D.E.Knuth、J.H.Morris和V.R.Pratt发表了一个模式匹配算法,可以大大避免重复遍历的情况,我们把它称为克努特--莫里斯----普拉特算法,简称KMP算法。我们不直接看算法,我们先通过实例来研究它的原理,懂了原理,算法学起来就easy了。假设主串S=...
阅读全文
摘要:Hello,everybody.我们又见面了。今天我们来学习一下队列这个数据结构,let’s Go,开始我们的征程吧。首先,举两个生活中的常见例子。相信大家,在用电脑工作娱乐时,都会碰到这样的现象。当我们点击程序或进行其他操作时,电脑处于死机状态。正当我们准备Reset时,它突然像打了鸡血似的,突然...
阅读全文
摘要:hello,everybody. 我们又见面了,这次我们一起来学习数据结构中,非常有意思的两种结构—Stack ,Queue.首先来学习一下栈:栈:限定只在表尾进行删除插入操作的线性表。顾名思义,栈是一种特殊的线性表。它特殊在什么地方呢?它只能在表尾进行插入或删除操作,又就意味着,它只能是先进后出。...
阅读全文
摘要:hello,everybody,今天我们来学习线性表的最后两种形式,循环链表、双向链表。这两种链表,是链式存储结构的不同形式。书归正传,我们先来看看循环链表吧。大家思考一个问题,我们把线性表各个元素比作下图的路线图上的城市:我们的线性表各个结点的指针,都是指向唯一的后继结点,线性表的终端结点的指针为...
阅读全文
摘要:hello,everybody.今天我们一起来学习,线性表的静态链表。C语言的指针变量,使我们可以操作内存的地址。但是,一些其他没有指针变量的设计语言,就没办法对内存进行操作。那我们上堂课的单链表,在这些没有指针的编程语言中,就无法实现了。这时候,静态链表就出生了。静态链表:用数组描述的链表叫做静态...
阅读全文
摘要:hello,上篇文章我们讲到了顺序存储结构的线性表,这篇我们来一道学习链式存储结构的线性表。顺序存储结构不足的解决办法: 顺序存储结构的插入、删除之所以那么麻烦。是因为,他们是在一段有序的地址内存存放,彼此 之间是相邻的。所以,当一个元素删除或者添加新元素,都会影响相邻的元素。 我们...
阅读全文
摘要:hello,everybody!又与大家见面了,因为线性表这章内容比较多一些,还有一些代码需要practice,所有好多天没有写博客。今天让我们一起来学习数据结构---线性表吧。线性表的定义:顾名思义,线性表,就是具有线性质的一种数据结构。书中的例子是这样说的:本书作者去幼儿园接孩子,发现了一个v...
阅读全文
摘要:hello,everybody.今天我们来总结一下《大话数据结构》第二章----算法。那么首先,让我们一起回忆一下书籍目录关于第二章的内容吧。算法1.数据结构与算法的关系2.两种算法的对比3.算法的定义4.算法的特性5.算法设计的要求6.算法效率的度量方法7.函数的渐近增长8.算法时间复杂度9.常...
阅读全文
摘要:Hellow,everybody ! 有段时间没与大家见面了,今后我会与大家一起学习数据结构与算法。好吧,让我先讲讲我对数据结构与算法的看法与想法吧。宋桑没有离开公司时,强烈推荐我利用现在富裕的时间去研究一下计算机科学的四大方面。我也是在他的encourage下,首次听到数据机构与算法的。在这方面...
阅读全文
浙公网安备 33010602011771号