1.断点调试(步骤)
1.1鼠标在行序号前点击即可。1.2点击调试-开始调试或直接按快捷键F5。1.3进入调试状态,进行调试。
2.栈
2.1栈的基本特点
- 栈是类似于箱子堆的数据结构,可以往里面存放和取出数据。
- 栈的存储数据原则:先进后出。
- 只能对栈顶进行操作(最上面的的数据)进行操作。
- 栈的两大元素:栈的大小和栈的指针top。
2.2栈的基本操作和实现
数组模拟与STL容器
1.新建⼀个栈
int stk[N],top=-1;//top指向栈顶。基底是0则top=-1,是1则top=0
stack<int>stk;
2.插⼊数据
stk[++top]=x;//将x插⼊栈
stk.push(x);//将x⼊栈
3.删除栈顶元素
top--;//删去栈顶
stk.top();//删栈顶
4.查询栈顶数据
stk[top];
stk.top();//取栈顶
5.如何清空⼀个栈
5.1依次判断top是否存在,并删除top。O(n)
5.2直接将top指针指向基地址。O(1)
6.数组模拟和STL容器的区别:
6.1STL⾥⾯的stack没有清空函数,只能⼀个⼀个出栈or新建⼀个栈。
6.2数组模拟的栈可以O(1)取出从栈顶往下数第k个元素(stk[top-k+1),⽽STL实现的栈不可以。
3.树的表达方法
- 树的结构是一种非线性的存储结构。存储的是具有一对多的关系的数据元素的集合。
- 树的结点:使用树结构存储的每一个数据元素都被称为“结点”。包括父节点(双亲结点),子节点,兄弟节点。
- 叶子结点:如果一个结点没有任何子结点,那么此结点为叶子结点。
- 结点的度:结点拥有的子树的个数,就称之为结点的度。
- 树的度:在各个结点当中,度的最大值为树的度。
- 树的深度或者高度:结点的层次从根结点开始定义起,根为第一层,根的孩子为第二层。以此类推。
//Node结点
/**
*@authorTuring
*@version1.0.0
*@DescriptionTODO
**/
publicclassNode{
//树种存放的数据
intdata;
//该结点的父结点在数组中的下标位置
intparent;
publicNode(intdata,intindex){
this.data=data;
this.parent=index;
}
publicintgetData(){
returndata;
}
publicvoidsetData(intdata){
this.data=data;
}publicintgetParent(){
returnparent;
}
publicvoidsetParent(intparent){
this.parent=parent;
}
}
4.二叉树
二叉树是每个结点最多有两个子树的树结构。也就是是二叉树不允许存在度大于2的树。它有五种最基本的形态:二叉树可以是空集。根可以有空的左子树或右子树;或者左右子树都是空。其中只有左子树或者右子树叫做斜树。(稍后再续啦)