`
v5browser
  • 浏览: 1138248 次
社区版块
存档分类
最新评论

双链表的操作和二叉树的知识总结

 
阅读更多

1、双链表

(1)插入操作(在双链表head中第i个结点之前插入一个值为x的结点)

(2)删除操作(删除双链表head中的第i个结点)

2、循环链表(circularlinkedlist)

(1)循环链表是表中最后一个结点的指针指向头结点,使链表构成环状。

(2)特点:从表中任一结点出发均可找到表中其他结点,提高查找效率。

(3)操作与单链表基本一致,循环条件不同

单链表p或p->link=NULL

循环链表p或p->link=H

3、双向链表(doublelinkedlist)

单链表具有单向性的缺点

结点定义

typedefstructnode{

datatypeelement;

structnode*prior,*next;

}JD;

4、删除

voiddelete_List(JD*p)

{p->prev->next=p->next;

p->next->prev=p->prev;

free(p);

}

插入

voidinsert_list(JD*p,intx)

{JD*s;

s=(JD*)malloc(sizeof(JD));

s->element=x;

s->prev=p->prev;

p->prev->next=s;

s->next=p;

p->prev=s;

}

5、家谱

<祖父,伯父>,<祖父,父亲>,<祖父,叔父>,<伯父,堂兄>,<伯父,堂姐>,<父亲,你>,<叔父,堂弟>,<堂兄,侄儿>

6、树型结构

概念:树型结构是非线性结构。树型结构是结点之间有分支,并且具有层次关系的结构,它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。

7、

定义:树(tree)是n(n>=0)个结点的有限集T,其中:有且仅有一个特定的结点,称为树的根(root)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)

8、基本术语

结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支

结点的度(degree)——结点拥有的子树的个数

叶子(leaf)——度为0的结点

孩子(child)——结点子树的根称为该结点的孩子

双亲(parents)——孩子结点的上层结点叫该结点的~

兄弟(sibling)——同一双亲的孩子

树的度——一棵树中所有结点度数的最大值

结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层……

深度(depth)——树中结点的最大层次数

森林(forest)——m(m³0)棵互不相交的树的集合

9、树和线性结构的比较

(1)线性结构:第一个数据元素(无前驱);最后一个数据元素(无后继);其它数据元素(一个前驱、一个后继).

(2)树结构:根结点(无前驱);多个叶子结点(无后继);树中其它结点

(一个前驱、多个后继).

10、二叉树的概念

定义:二叉树是n(n³0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵分别称为左子树和右子树的互不相交的二叉树构成

特点:每个结点至多有二棵子树(即不存在度大于2的结点)

二叉树的子树有左、右之分,且其次序不能任意颠倒

11、完全二叉树

(1)定义:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为完全二叉树.

(2)判断是否为完全二叉树的依据:若设二叉树的深度为h,除第h层外,其它各层(1~h-1)的结点数都达到最大个数,第h层所有的结点都连续集中在最左边,这就是完全二叉树。

12、具有n个结点的完全的二叉树的深度:[log2^n]+1

13、二叉树的第i层上至多有2^(i-1)个结点(i>=1)

14、遍历二叉树

1.方法:

先序(根)遍历:先访问根结点,然后分别先序遍历左子树、右子树

中序(根)遍历:先中序遍历左子树,然后访问根结点,最后中序遍历右子树

后序(根)遍历:先后序遍历左、右子树,然后访问根结点

按层次遍历:从上到下、从左到右访问各结点.

分享到:
评论

相关推荐

    C++编程资料整合版

    最新搜索整理,内容全面,分析透彻, 很适合初学者 ,可做复习、面试的资料。 1.C++树的生成与遍历 2.遍历二叉树 3.插入排序,快速排序 ...30.循环链表,双向链表,有序表,栈的表示和实现,应用等等

    数据结构与算法综合资料库.CHM

    算法综合知识 用递归中序遍历二叉树 BRESENHAM高效画线算法 C++的沉迷与爱恋 C++复习题一 C++复习题 二 DES加密算法破解方法 DES算法及其应用误区 N皇后问题 采用循环双向链表, 能实现多个长整型进行加法运算 插入...

    数据结构与算法综合资料库

    算法综合知识 用递归中序遍历二叉树 BRESENHAM高效画线算法 C++的沉迷与爱恋 C++复习题一 C++复习题 二 DES加密算法破解方法 DES算法及其应用误区 N皇后问题 采用循环双向链表, 能实现多个长整型进行加法运算 插入...

    传智播客扫地僧视频讲义源码

    16_友元函数实现操作符重载知识总结 17_重载等号操作符_传智扫地僧 18_数组类小案例_操作符重载需求 19_数组类小案例_重载[]_传智扫地僧 20_数组类小案例_重载等号_传智扫地僧 21_数组类小案例_重载==和!= 22_作业 ...

    数据结构与算法分析第二版 ---C语言描述(附加答案)

    表、栈和队列3.1 抽象数据类型(ADT)3.2 表ADT3.2.1 表的简单数组实现3.2.2 链表3.2.3 程序设计细节3.2.4 常见的错误3.2.5 双链表3.2.6 循环链表3.2.7 例子3.2.8 链表的游标实现3.3 栈ADT3.3.1 栈模型3.3.2 栈的...

    leetcode跳跃-DataStructure_And_Algorithms:算法虐我千百遍,我待算法如初恋

    对一些系统性的知识写文章,进行系统性的总结,按章节来 矩阵、广义表、图的知识学习 剑指offer一书的习题 刷leetcode题 线性表 顺序存储 链式存储 双向链表 循环链表(约瑟夫环) 静态链表 双向循环链表 栈 顺序栈 ...

    宋劲彬的嵌入式C语言一站式编程

    26. 链表、二叉树和哈希表 1. 链表 1.1. 单链表 1.2. 双向链表 1.3. 静态链表 1.4. 本节综合练习 2. 二叉树 2.1. 二叉树的基本概念 2.2. 排序二叉树 3. 哈希表 27. 本阶段总结 III. Linux系统编程 28. 文件与I/O 1. ...

    leetcode中国-LeetCode:力扣解决方案

    已学习到的知识总结 左神算法课 L00 04 反转单向链表和双向链表 用curr,prev,next注意不要断链 在行和列都排好序的矩阵中找数,从右上角开始 打印两个单链表的相交的问题,注意还要考虑有环没有。 如何找到入环的...

    嵌入式Linux C编程入门(第2版) PPT

    第1章 嵌入式系统基础知识 .1 1.1 嵌入式系统概述 1 1.1.1 嵌入式系统的发展史 2 1.1.2 嵌入式系统的定义与特点 3 1.1.3 嵌入式系统的特点 4 1.2 嵌入式系统的组成 5 1.2.1 嵌入式系统的硬件架构...

    leetcode答案-Tutorial_Algorithm:教程_算法

    利用递归和迭代法解决二叉树问题。 栈、队列、DFS、BFS。 回溯法、贪心算法、动态规划。 学习路径 第一步,看最粗浅的算法知识介绍 大概知识,是什么, 可以干什么用, 可以怎么学。 信心,兴趣 数据结构的知识 第二...

    MaxTutorial_Software_Engineering

    信心,兴趣数据结构的知识第二步, 详细学习每个知识点并且练习每个知识点,都要对应的做题,以加深印象视频课程 + 分类刷题 +第三步 总结题解 + 回头复习数据结构:栈,队列,字典,元组,树,链表。算法算法的...

    5 / 3 趁假期,写下近20天的面试总结

    对于实习生来说,考的最多的还是前端基础,其次就是计网、数据结构、操作系统这些专业知识,还有一点算法(不说要达到可以竞赛的水平,基本算法思想:双指针、排序、分冶、动态规划、二叉树、链表、栈和队列等要了解...

    leetcode小岛出水口-LeetCode:通过不断的实践加深对数据结构和算法的理解

    LeetCodeBlogs:解题过程中常用方法的总结和错误的一般解决方式; 二、顺序目录 (一)背景知识 数据结构笔记: 算法笔记: 7 个数据结构分别是: 数组,栈,队列,链表,二叉树,散列表,图(未学习) 7 个算法分别是...

    leetcode分类-leetcode:javalee代码

    java语言实现leetcode中的一些题,数据结构的一些基本知识也在往这上面总结。:turtle: src algorithm 算法总结 basic 写一些基础的算法,如快排 famous 著名的一些算法 LCS 最长公共子序列 graph 图 sort 排序 test ...

Global site tag (gtag.js) - Google Analytics