
数据结构与算法
将学习的数据结构整理记录,并将自己的自学笔记在此记录
百曉生
计算机方面的菜鸟,新手,正在学习中
展开
-
树和二叉树
树定义:专业定义【递归定义】如果是一个非空树,则必须满足以下两点:1、有且仅有一个称为根的结点2、有若干个互不相交的子树,这些子树本身也是一棵树 通俗的定义【非递归定义】1、树由结点和边组成2、没有父结点的结点称为根节点3、每个结点有且仅有一个父结点但可以有多个子结点 一些专业术语结点父结点子结点子孙堂兄弟深度:从根节点到原创 2014-06-25 06:29:06 · 1147 阅读 · 0 评论 -
关于递归
递归定义: 函数自己直接或间接的调用它自己 满足的条件: 1、递归必须有一个明确的终止条件 2、该函数所处理的数据规模必须在递减 递归是用栈来实现的 下面将举几个例子例1是说明一下,一个函数是怎么调用其它函数的例1:原创 2014-06-21 15:10:44 · 850 阅读 · 0 评论 -
线性结构常见应用之二——队列
定义:队列是一种可以实现先进先出的存储结构,类似于排队买票(假设无人插队),则先排队的先买到票,后排队的后买到票 分类:链式队列——用链表实现静态队列——用数组实现静态队列通常都必须是循环队列 链式队列实际上就是一个操作受限的链表,这里就不多说了 关于循环队列:1、静态队列为什么必须是循环队列2、循环队列需要几个参数来原创 2014-06-15 16:41:44 · 825 阅读 · 0 评论 -
线性结构常见应用之一——栈
定义:栈是一种“先进后出”(后进先出)的存储结构,类似于一个装东西的箱子,即先装进去的后出来 实际上说,栈是操作受限的链表 分类:静态栈动态栈以数组为基本内核的称为静态栈 下面举个例子例1:原创 2014-06-10 23:06:02 · 798 阅读 · 0 评论 -
关于链表_2
链表的分类:单链表:双链表:每一个节点有两个指针域 循环链表:能通过任何一个节点找到其它所有的结点非循环链表:算法:遍历查找清空销毁求长度排序删除节点插入节点 下面举个例子例1:{优快云:C原创 2014-06-09 21:57:28 · 925 阅读 · 0 评论 -
关于数组_2——数组的算法演示
下面的例子是使用结构体和一些函数来模拟数组的功能,即构造一个数组讲这个程序,主要还是为了讲两个知识,一是数据的存储不一样,操作也不一样,泛型达到的效果是存储不一样,操作一样 首先来说,要模拟一个数组,需要有长度、第一个元素首字节的地址,还有就是当前数组的有效长度(因为这里说的构造的数组是动态分配的数组),其实,严格说起来,还需要一个,就是自动增长因子,这个是什么呢?要知原创 2014-06-06 22:31:42 · 741 阅读 · 0 评论 -
数据结构与算法
数据结构定义我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结 构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如 查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操 作,这个相应的操作也叫算法 数据结构 = 个体的存储 + 个体之间的关系的存储算法 = 对存储数据的操作 狭义上: 数据结构是专门研究数据存储的课程原创 2014-06-04 20:31:45 · 736 阅读 · 0 评论 -
关于链表_1
链表动态地进行存储的一种结构 专业术语:头结点头结点的数据类型和首节点的类型一模一样头结点是首节点前面的那个结点头结点并不存放有效数据设置头结点的目的是为了方便对链表的操作 头指针存放头结点地址的指针变量 首节点存放第一个有效数据的结点 尾节点存放最后一个有效数据的结点原创 2014-05-24 23:00:28 · 770 阅读 · 0 评论