36. 循环队列上的插入操作(进队列)
Status EnQueue(SqQueue &Q,QElemType e) {
if((Q.rear + 1) % MXASIZE = =Q.front) return ERROR; // 队列满
Q.base[Q.rear] = e; // 新元素存放到队尾
Q.rear = (Q.rear+ 1)% MAXQSIZE; // 修改队为指示器
return OK;
}
0 1 0 1 C 0 1 7 2 7 2 7 2 C 6 3 6 3 6 3 5 4 5 4 5 4 A B A B D D E F E G图3-13循环队列上的插入Q.rearQ.rearQ.rearQ.frontQ.frontQ.front满队列空队列
37. 3)循环队列的删除 把队头元素删除
Status DeQueue(SqQueue &Q,QElemType e){
if (Q.front = = Q.rear) return ERROR; // 队列空
e= Q.base[Q.front]; // 删除当前队头元素
Q.front = (Q.front + 1) % MAXQSIZE; // 修改队头指示器
return OK;
}
G A B C C D G D F E F E图3-14循环队列的删除过程Q.rearQ.rearQ.rearQ.front(1)满 (2)删除A、B后的队列 (3) 删除最后一个元素空队列Q.frontQ.front
75. 1.3 排序、查找(1)排序
常用的排序方法--冒泡排序
程序:
void BubbleSort(int a[], n)
{
int i,j;
int x;
for(i=1;ia[j+1]) {//进行交换
x = a[j];
a[j] = a[j+1];
a[j+1] = x;
}
};
}
}
76. 1.3 排序、查找(2)常用的排序方法--选择排序
程序:
void SelectSort(int a[], int n )
{
int i,j,k;
int x
for (i=1;i
77. 1.3 排序、查找(3)查找
常用的查找方法--折半查找
折半查找的前提--线性表是有序的
程序
int BinarySearch(int a[], int N, int x)
{
int low=0, high=N-1; //定义并初始化区间下界和上界变量
int mid; //定义保存中点元素下标的变量
while(low<=high) {
mid=(low+high)/2;
if(x==a[mid])
return mid ;
else if(x