如何去判断顺序队列是否为空
int empty(struct queue * p)
{
if( p->font == p->rear )
{
printf("is empty\n");
return 1;
}
return 0;
}
如何去判断顺序队列是否为满
注:num为顺序队列总共有多少个元素
int full(struct queue * p)
{
if( (p->rear+1) % num == p->font )
{
printf("is full\n");
return 1;
}
return 0;
}
如何判断该队列的已有多少个元素呢?
int datanum(该队列的结构体的地址指针即struct node * p)
{
int num=0;
num=((p->rear+m+1) - p->font)%(m+1);
printf("%d\n",num);
}
struct node
{
int rear,font;
int data[m+1];
};
如何求原本的二叉树:
通过前序和中序或者后续和中序可以得到原来的二叉树
前序:根左右,中序:左根右,后序:左右根
什么是栈:
特殊线性表(先后关系),只允许在线性表的一端进行插入删除操作
顺序栈:
一段连续空间来存储线性表,但是操作只能在一端
栈底不变,移动栈顶;入栈、出栈都改变栈顶指针
链式栈:
每个元素都申请自己的空间,栈顶元素存储上一个栈顶元素的地址,在链表头位置进行操作
头节点的next
存储栈顶;入栈、出栈都改变
next
指针就可以了
算法的复杂度
语句频度:语句的重复次数
时间复杂度:所有语句的语句频度之和 T(n)
空间复杂度:S(n)
大
O
表示法,
n
趋近于无穷大
T(n) = 3n + 2
T(n) = O(n) = n
数据结构:
怎么把数据与数据之间的关系表示,以及怎么存储这些有关系的数据
1.
关系
---
逻辑结构
就是数据之间的抽象关系(先后、从属、邻接、层次)
四种:集合结构、线性结构、树型结构、图型结构
2.
存储
---
存储结构
就是数据的逻辑结构在计算机中进行存储方式
四种:顺序存储、链式(
离散
)
存储、索引存储、散列存储