分享

C 基础知识点第十三天(算法)

 风饕虐雪 2018-07-27

C++基础知识点第十三天(算法)

1.线性表:分类:

1)线性表顺序存储:

2)线性表线性存储:

1)单向链表

2)单向链表(企业链表)

3)循环链表(企业链表单向)

4)解决约瑟夫问题(用单项循环链表)

5)双向链表

6)受限的线性表

1)栈的顺序存储( stack )

2)栈的链式存储( stack )

3)队列的顺序存储( queue )

4)队列的链式存储( queue )

5)栈的应用(1.就近匹配,用来测试编码的括号使用规范)

6)栈的应用(2.中缀表达式转后缀表达式)

7)(计算机)基于后缀表达式的计算;

3.树的特点:

1)非线性结构,有 1 个直接前驱,但可能有多个直接后继(1 :n);

2)树的定义具有递归性,树中还有树。

3)树可以为空,即节点为0。

4.树的一些专业名称

1)节点的度:节点挂接的子树数(即一个节点有几个直接后继就有几度)。

2)节点的层次:即根到该节点的层数(根节点算一层)

3)树的度:所有 节点的度 中的最大值

4)树的深度(或高度):指所有节点中的最大层数。

5)节点数:一棵树中的所有节点个数(包括根节点)。

6)叶子节点:即终端节点,没有后继。

5 二叉树

1)二叉树的基本特征:(1 :2)

每个节点最多只有两个子树

左子树和右子树的位置不能颠倒

2)二叉树的性质:

1)在二叉树的第 i 层上,最多只有2^(i-1)个节点。(i > 0)

2)深度为 k 的二叉树,最多只有 2^k -1 个节点。(k>0)

3)对于任何一个二叉树,若度为2 的节点有n2个,则它的叶子数必为 n2+1个。

4)满二叉树:深度为K,有 2^K-1 个节点。特点是:每层都充满了节点。

6.完全二叉树:

1)除最后一层外,每层的节点数都达到了最大值,且最后一层的节点尽力靠左。

2)对于完全二叉树:若从上至下,从左至右编号,则编号为i的节点,其左孩子编号为 2i, 右孩子编号为 2i+1, 双亲的编号为 i/2;(i等于1时,为根除外)。

1)左孩子右兄弟:可以将一颗多叉树转变为二叉树

2)递归遍历(周游)二叉树

3)非递归遍历二叉树(用栈的方法)

4)遍历的三种方法:

1)先序:先根再左再右

2)中序:先左再根再右

3)后序:先左再右再根

5)

1)已知二叉树的'先序'遍历和'后序'遍历序列'不能'唯一地确定这这棵树。

2)已知二叉树的'先序'遍历和'中序'遍历'可以'唯一地确定这这棵树。

1)先根据先序找到根节点,在根据中序确定根节点左右两边的节点

2)再根据先序找到下一个根节点,再根据中序找到根节点左右两边的节点。

3)'中序'、'后序'可以确定一棵树

4)总体结论为:带'中序'的都可以确定一棵树,反之则确定不了

6)三种遍历的特点:

1)先序遍历:可以确定每棵树的根节点。(特点: 它的输出序列中:第一个数为树的总根节点;剩下的子根节点,和中序遍历可以确定)

2)中序遍历:可以确定根节点的左右子树。(它的特点为:输出序列中,根节点两边的为它的左右子树,和先序遍历配合可以确定一棵树)

3)后续遍历:(它的特点;输出序列中,最后一个数为为树的总根节点。)

下面是本人整理的链接,能够帮助大家快速寻找文章

linux系统篇链接:

Linux系统篇-网络协议栈之传输层(简单清晰)

Linux系统篇-网络协议栈-发送端之应用层(简单清晰)

Linux系统篇-网络协议栈之网络路径

linux系统篇-网络协议栈实现解析(1)网络协议栈初始化

Linux系统篇-内核的5个重要子系统

Linux系统篇-文件系统&虚拟文件系统

Linux系统篇-进程的管理与调度

Linux系统篇-内存管理(五分钟搞懂)

C++的知识点,下面几篇文章链接:

C++基础知识点第七天

C++基础知识点第六天

C++基础知识第五天(面试必备)

C++基础知识第四天(面试必备)

C++基础知识第三天(面试必备)

C++基础知识第二天

C++基础知识第一天

网络编程方面,可以查看以下几篇文章链接:

广播和多播、IGMP协议之套餐

ICMP 协议、ping 和 Traceroute套餐

IPv6技术详解

高性能网络编程:单台服务器TCP最大并发链接数

TCP拥塞控制

高级网络编程之疑症:清掉TIME_WAIT的奇怪技巧

高级网络编程之疑症:TCP的延迟确认机制

高级网络编程之疑症:TCP的头号疼症TIME_WAIT状态(下篇)

高级网络编程之疑症:TCP 的头号疼症 TIME_WAIT

高级网络编程之疑症:TCP 的 Peer 两端同时断开连接

高级网络编程之疑症:TCP 连接的初始化序列号能否固定?

高级网络编程之疑症:初始化连接的 SYN 超时问题

高级网络编程之疑症:四次挥手能不能变成三次挥手呢?

喜欢我的文章的话,就关注我吧!不要只收藏和转发哦,每天至少两篇编程知识给大家,都是本人多年的经验总结!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多