栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

二分法 栈与队列

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

二分法 栈与队列

1.二分法:

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

例如:

#include
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},我们找的数字是:"<>x;
    while(a[mid]>x)
    {
        if(a[mid]!=x)
        right=mid;//右边变成了right
        else
        left=mid;//左边变成了left
        mid=(left+right)/2;//中间变成了mid
     }
    cout<

2.栈和队列

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

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

图解:

 

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

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

栈的插入:

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

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

 

栈的删除:

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

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/737836.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号