【王道机试指南学习笔记】第五章 数据结构一

5.1 向量

重点提醒

数组存在确定其大小的限制, 向量——变长数组。
线性序列容器,使用连续的空间存储元素,可用下标来访问,只是大小动态变化!

STL-vector

#include
对尾部:push_back()/pop_back()
insert()/erase()/clear()
end()返回尾元素的后一个位置!!
在这里插入图片描述

题目练习

例题5.1 完数与盈数(清华复试)

牛客网网址:https://www.nowcoder.com/questionTerminal/df0d850e41894d06a165bf445ec8a8b4
AC的格式稍有点怪 其实没难度

#include <iostream>
#include <vector>

using namespace std;
vector<int> numE;
vector<int> numG;

int Sum(int x){
   
    int sum = 0;
    for(int i = 1;i<x;i++){
   
        if(x%i==0) //是因子
            sum +=i;
    }
    return sum;
}
int main(){
   
    for(int i=2;i<=60;i++){
   
        if(i==Sum(i)) numE.push_back(i);
        else if(i<Sum(i)) numG.push_back(i);
    }
    cout<<"E:";
    for(int i = 0;i< numE.size();i++){
   
        cout<<" "<<numE[i];
    }
    cout<<" G:";
        for(int i = 0;i< numG.size();i++){
   
        cout<<" "<<numG[i];
    }
    cout<<endl;
    return 0;
}

5.2 队列

重点提醒

从搜索的起点开始,不断地优先访问当前结点的邻居
队列是一种线性的序列结构,其存放的元素按照线性的逻辑次序排列。与数组/向量相比,队列只限于逻辑两端的操作。
“先进先出”规则!

STL-queue

基本操作

empty()/size() push()/pop() front()/back()
在这里插入图片描述

题目练习

例题5.2 约瑟夫问题No.2

约瑟夫问题数据规模不大时,可直接用循环队列模拟。
可以把模板队列queue的队首元素弹出后,再压入尾部,模拟循环队列效果。

#include <iostream>
#include <cstdio&g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值