摘要:
树(tree) 一、定义 树是n个节点的有限集。n=0时称为空树,n>1时其余结点可分为m(m>0)个互不相交的有限集,其中每个集合本身又是一棵树,并且称为根的子树。形状类似于树状图,如下图所示: 再次强调几点: 1.根节点是唯一的,不可能存在多个根节点。 2.子树的个数没有限制,但是一定不可能相互 阅读全文
posted @ 2021-08-16 22:46
Pangenda
阅读(238)
评论(0)
推荐(0)
摘要:
递归 一、概念 一个函数直接或者间接调用自己的方法就称为递归,递归在C语言里是靠栈来实现的。递归的使用可以让人更容易理解程序的作用,但运行速度很慢。 一.五、补充 递归如何靠栈来实现的 以如下斐波那契数列为例讲解 int Fbi(int i) { if(i<2) return i==0? 0 : 1 阅读全文
posted @ 2021-08-16 22:10
Pangenda
阅读(73)
评论(0)
推荐(0)
摘要:
队列(queue) 一、定义 一种可以实现“先进先出”(FIFO)的存储结构,即先进入队列的数据先取出来。 二、分类 链式队列:链表实现,实现难度比静态队列低很多 静态队列:数组实现,静态队列通常都必须是循环队列 三、程序实现前该解决的问题 (1)静态队列为什么必须是循环队列? 因为front、re 阅读全文
posted @ 2021-08-16 17:32
Pangenda
阅读(103)
评论(0)
推荐(0)
摘要:
栈(stack) 一、定义 一种可以实现“后进先出(LIFO,last in first out)”的存储结构,即后存放进栈的数据要先出去。就像箱子里取书一样,先拿上面的书,再拿下面的书。 二、栈的分类 静态栈:即采用连续存储(数组)的方式实现 动态栈:即采用离散存储(链表)的方式实现,示意图如下 阅读全文
posted @ 2021-08-16 16:46
Pangenda
阅读(94)
评论(0)
推荐(0)
摘要:
链表(list) 如下图所示即为普通的单链表结构: 一、概念 N个节点(node)离散分配、彼此通过指针相连、每个节点只有一个前驱节点和一个后驱节点,首节点没有前驱节点,尾节点没有后续节点 专业术语: 首节点:存放第一个有效数据的节点 尾节点:存放最后一个有效数据的节点 头节点:首节点之前的那个节点 阅读全文
posted @ 2021-08-16 16:39
Pangenda
阅读(111)
评论(0)
推荐(0)
摘要:
数组(array) 这里所讲的数组和前面知识讲的差不多一样,都是开辟一片连续存储的空间,只不过这里只是认为定义了一个类数组的结构体。 一、利用数组存储数据的优缺点 优点:存取速度快,实现容易理解。 缺点:插入删除元素很慢,因为每次都需要左移或者右移。 二、和数组有关的基本操作 初始化:先声明一个数组 阅读全文
posted @ 2021-08-16 16:07
Pangenda
阅读(59)
评论(0)
推荐(0)
摘要:
一、概述 我们通常会把现实中大量而复杂的问题以特定的数据类型和特定的存储结构存放到主存储器中,以及在此基础上为实现某个功能(比如查找某个元素、删除某个元素、对元素进行排序等)而执行相应的操作,这个相应的操作也叫算法。 (1)数据结构 狭义上,数据结构是研究数据存储结构的一门学科;广义上,数据结构还包 阅读全文
posted @ 2021-08-16 15:39
Pangenda
阅读(110)
评论(0)
推荐(0)

浙公网安备 33010602011771号