【数据结构】

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的树。它有五种最基本的形态:二叉树可以是空集。根可以有空的左子树或右子树;或者左右子树都是空。其中只有左子树或者右子树叫做斜树。(稍后再续啦)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值