各种查找的时间复杂度,ASL成功,不成功。都要体现。
谈谈你对查找算法学习体会。也可以谈谈STL容器中查找如何用的。
int LCA( Tree T, int u, int v ){
定义 Tree类型变量 BST ,BSV,分别存放u,v在树的节点
BST等于BSV等于T
while BST不等于 NULL 遍历BST
若找不到u
return 错误
如果找到了u
while (BST不等于NULL)遍历 BST
若找不到v
return 错误
如果找到了,对公共祖先的情况进行判断
遍历T
如果u和v都小于根节点
T指向左孩子
如果u和v都大于根节点
T指向右孩子
如果根节点等于u
返回 公共祖先u
如果根节点等于v
返回 公共祖先v
如果 v和u分布在 根节点两侧
返回 公共祖先 根节点的值
end遍历
如果 T==NULL
return 错误;
}
部分正确:
map定义一个用string 作为索引,并拥有相关联的指向string的指针 qq
定义整型变量 n,i;分别存放用户总数和循环变量
定义字符型变量 c 存放操作类型L or N
定义字符串型变量 user,pw 分别存放用户账号和密码
输入人数
for i=0 to i=N;共N次
输入操作类型
输入 用户和密码
通过map对象的方法获取的iterator数据类型it
it 等于在qq里寻找 user 的结果
switch (操作类型)
case L:{
如果 账户不存在
输出 "ERROR: Not Exist"
如果 账户存在 但是 密码错误
输出"ERROR: Wrong PW"
其他
输出"Login: OK"
}break;
case N:{
如果 用户已经存在
输出 "ERROR: Exist"
其他
qq[user]等于pw;
输出 OK
}break;
1多种错误:.
定义全局变量人数num=0;
主函数:
输入人数及操作类型lon
输入 用户账号acc和密码word
swich(lon):{
case ‘L‘:函数Local(acc,word);break;
case ‘N‘:函数New(acc,word);break;
}
void Local(char acc[],char word[]){//老用户登录
如果 人数为0
输出 ERROR: Not Exis
否则
for i=0 to i等于用户人数 ,共num次
while 遍历账号数组
如果 某位账号不符合
break;
end while
如果全部配对
while遍历密码数组
如果 某位密码不配对
break;
end while
如果配对成功
输出Login: OK 并结束
否则
输出"ERROR: Wrong PW 并结束
end for
}
void New(char acc[],char word[]){//新用户申请
如果人数等于 0
直接录入
否则
与之前的所有账号对比
如果有配对成功的
输出 ERROR: Exist
否则
录入新纪录
人数 num加一
}
int main(){
定义整型变量 i 做循环变量
N,M 存放用户数量
K 存放官方最小里程
trip 存放用户里程
定义long long类型变量 id,ID,分别存放,记录时身份证的前17位,查询时身份证的前17位
定义字符型变量 c 存放身份证最后一位校验码
map定义一个用long long 作为索引,并拥有相关联的指向int的指针 record.
输入 N,K;
for i=0 to i=N 共N次
{ 输入要录入的 id和c,还有里程数trip;
如果 trip 小于最小里程
则 trip 等于 最小里程
通过map对象的方法获取的iterator数据类型it
it 等于 在record里寻找 id的结果
如果 找不到
record[id]等于 用户里程数
找到则
该用户的里程数 加 trip
}end for;
输入 M;//查询部分
for i=0 to i=M,共M次
{ 输入查询的ID 和c
通过map对象的方法获取的iterator数据类型it
it 等于 在record里寻找 id的结果
如果 找不到
输出 "No Info\n"
找到则
输出该会员里程数
}end for;
return 0;
}
运行超时:.
(201721123002)
原文:https://www.cnblogs.com/Zeng99/p/9084760.html