
数据结构
雨碎江南ldy
一个简单的工科男,想靠自己的努力改变未来。
展开
-
数据结构(树)
定义专业定义:有且只有一个称之为根的结点;有若干个互不相交的子树,这些子树本身也是一棵树。通俗定义:树是由结点和边组成;每个结点只有一个父节点,但可以有多个子节点;但有一个结点例外,该节点没有父结点,此结点称为根结点。专业术语结点 父结点 子结点 子孙 堂兄弟 兄弟结点深度:从根结点到最低层结点的层数称之为深度,根结点是第一层。叶子结点...原创 2019-05-19 16:32:45 · 248 阅读 · 0 评论 -
数据结构(二叉树的操作一)
二叉树的操作先序遍历【先访问根结点】规则:先访问根结点,再先序访问左子树,再先序访问右子树。中序遍历【中间访问根结点】规则:中序遍历左子树,再访问根结点,再中序遍历右子树后序遍历【最后访问根结点】规则:后序遍历左子树,后序遍历右子树,再访问根结点...原创 2019-05-19 21:41:53 · 307 阅读 · 2 评论 -
数据结构(二叉树的操作二)
已知两种遍历序列求原始二叉树通过先序和中序或者中序和后序我们可以还原出原始二叉树但是通过先序和后序是无法还原出原始的二叉树的换种说法:只有通过先序和中序或通过中序和后序,我们才可以唯一的确定一个二叉树已知先序和中序求后序先序遍历中最早出现的就是根中序遍历根结点的左边为左子树,根结点的右边为右子树已知中序和后序求先序后序遍历中最后出现的就是根结点中序遍历根结点的左边为左子树,根...原创 2019-05-20 11:17:31 · 334 阅读 · 0 评论 -
数据结构(连续存储--动态数组)
数据结构的概述定义:我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法数据结构 = 个体 + 个体的关系算法 = 对存储数据的操作算法解题的方法和步骤衡量算法的标准:(1)时间复杂度:大概程序要执行的次数,而非执行的...原创 2019-05-15 21:02:45 · 699 阅读 · 0 评论 -
数据结构(链式二叉树及快速排序的算法实现)
链式二叉树的算法实现算法实现的目标:动态构造一个链式二叉树、并且用先序、中序、后序遍历这个链式二叉树。一个结点包括三个部分:左孩子的指针域、数据域、右孩子的指针域。所以创建链式二叉树的步骤为:把左指针域指向他的左孩子,右指针域指向他的右孩子。# include <stdio.h># include <stdlib.h>typedef struct BTNod...原创 2019-05-21 11:28:29 · 687 阅读 · 0 评论 -
数据结构(离散 | 链式存储--链表)
定义n个结点离散分配,彼此通过指针相连,每个结点只有一个前驱结点,每个结点只有一个后继结点,首结点没有前驱结点,尾结点没有后继结点。专业术语:(1)首结点:第一个有效结点(2)尾结点:最后一个有效结点(3)头结点:头结点的数据类型和首结点的类型一样;第一个有效结点之前的结点;头结点并不存放有效数据;加头结点的目的主要是为了方便对链表的操作(4)头指针:指向头结点的指针变量(5)尾指针...原创 2019-05-16 20:33:25 · 1290 阅读 · 0 评论 -
数据结构(线性结构的应用之一-----栈)
定义一种可以实现“先进后出”的存储结构栈类似于箱子分类(1)静态栈(2)动态栈算法(1)出栈(2)压栈原创 2019-05-17 14:23:43 · 521 阅读 · 0 评论 -
数据结构(线性结构的应用之二-----队列)
定义一种可以实现“先进先出”的存储结构分类(1)链式队列 — 用链表实现(2)静态队列 — 用数组实现静态队列通常都必须是循环队列循环队列静态队列为什么必须是循环队列循环队列需要几个参数来确定需要两个参数来确定 front,rear循环队列各个参数的含义这两个参数在不同场合有不同的含义建议初学者先记住,然后慢慢体会(1)队列初始化font和rear的值都是零...原创 2019-05-18 09:52:02 · 456 阅读 · 0 评论 -
数据结构(递归)
定义一个函数直接或间接调用自己不同函数之间的相互调用# include <stdio.h>void f();void g();void k();void f(){ printf("FFF\n"); g(); printf("1111\n");}void g(){ printf("GGG\n"); k(); printf("2222\n");}...原创 2019-05-18 19:34:59 · 2539 阅读 · 1 评论