0
点赞
收藏
分享

微信扫一扫

二分法 栈与队列

1.二分法:

一直取中间值与要找的数比较,

例如:

#include<iostream>
using namespace std;
int main()
{
    int a[]={1,2,3,4,5,6,7,8,9};
    int x,left=0,right=sizeof(a),mid=(left+right)/2;
    cout<<"数组是a[]={1,2,3,4,5,6,7,8,9},我们找的数字是:"<<endl;
    cin>>x;
    while(a[mid]>x)
    {
        if(a[mid]!=x)
        right=mid;//右边变成了right
        else
        left=mid;//左边变成了left
        mid=(left+right)/2;//中间变成了mid
     }
    cout<<a[mid]<<end1;
    return 0;
}
    
     

2.栈和队列

数据结构是计算机存储,组织数据的方式,数据结构主要包括数组、链表、栈,队列、树。

栈也被称为栈堆,是一种先进后出,删除和插入都在栈顶操作的线性表

图解:

 

 栈的特性:先进后出,后进先出。

最先放入栈的内容最后被拿出来,最后放入栈的内容最先被拿出来。

栈的插入:

push():在栈顶插入元素。

例如;push(1),就是在栈顶插入了1;

 

栈的删除:

pop():在栈顶移除一个元素,并将栈数-1。

 栈的递归应用:一个直接调用自己或通过一系列的调用语句间接的调用自己的函数。

#include<stdio.h>
int f(int m)
{
    if(m==1)
    return 1;
    else
    {
        printf("m=%d\n",m);
        return f(m-1);
    }
int main()
{
    int n;
    int f(int m);
    printf("请输入一个大于1的数:");
    scanf("%d",&n);
    printf("%d",f(n));
    return 0;
}
举报

相关推荐

0 条评论