栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

数据结构-队列-栈-二叉树

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

数据结构-队列-栈-二叉树

队列特点:先进先出(FILO) 

逻辑结构:线性结构

队列头出数据,队列尾入数据,

顺序队列:

判断队列为空的条件: front (尾)= rear(头)

判断队列为满的条件:(rear+1)%MAXLEN =  front;

链式队列:无需判断队列满;

                  判断队列空:没有头结点时: front  = NULL;

                                        有头结点时:  front = rear;

笔试面试题:
1. 如何使用两个栈,实现一个队列的功能?
栈是先进后出的结构,队列是先进先出的结构。
创建两个栈,栈A和栈B,
入队列时:直接入到栈A里面,
出队列时:先判断栈B是否为空,如果不为空,直接在栈B中pop一个元素,
如果栈B为空,先将栈A中的所有元素依次pop并push到栈B中,然后在栈B中pop一个
元素。

2.如何用俩个队列实现一个栈的功能:

 1、进栈:把元素push进⾮空的队列,如果两者都是空的,则随意。 
2、出栈:把⾮空队列⾥⾯的前n-1个元素push到空队列⾥⾯,再把最后⼀个元素拿出来即可。 
3、循环以上步骤,即可得到实现⽬的。

递归:

递归是是在函数中不断调用自身的一个过程。

递归也是一个不断压栈的过程,所以递归一定要有出口,否则会出现栈满溢出,导致段错误。

C语言程序分为:顺序结构,分支结构,循环结果。

递归不属于C语言程序结构,它只是函数调用,只是调用的方式有点特殊。


二叉树:

满二叉树:

        叶子节点一定在最下面

        非叶子节点的度一定为2

        在同样深度的二叉树中,满2叉树的节点是最多的,叶子节点也是最多的

        在第i层,所有节点个数为2(i)次方-1;

        在第i层,i层中的节点个数为2(i-1)次方

完全二叉树的特点:
叶子节点只能出现在最下两层
最下层的叶子一定集中在左部连续位置
倒数第二层若有叶子结点,一定都在右部连续位置
如果节点度为 1  则该节点只有左孩子
满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树
 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002367.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号