统一门户网站,上海健康证查询网址,wordpress 蛋花儿,网络开发部是做什么的目录 文章目录 目录顺序查找#xff08;依频率查找#xff09;任务描述 计算器链表的构造线性表的构造图遍历 顺序查找#xff08;依频率查找#xff09;
思路#xff1a;用字典进行存储#xff0c;考字典的操作
任务描述
本关任务#xff1a;顺序查找是一种简单的查…目录 文章目录 目录顺序查找依频率查找任务描述 计算器链表的构造线性表的构造图遍历 顺序查找依频率查找
思路用字典进行存储考字典的操作
任务描述
本关任务顺序查找是一种简单的查找算法它遍历待查找的元素列表按照元素出现的频次进行查找。给定一个包含 N 个整数的列表设计一个 Python 算法查找列表中出现频次最高的元素并返回该元素。 def find_most_frequent_element(arr):########## Begin ##########dic {}max_num 0index 0for i in arr:if i in dic:dic[i] dic[i] 1else:dic[i] 1if max_num dic[i]:indeximax_num dic[i]return index########## End ########### 输入数据
N int(input()) # 请输入列表中元素的个数
arr list(map(int, input().split())) # 请输入N个用空格分隔的整数# 求解并输出结果
result find_most_frequent_element(arr)
print(列表中出现频次最高的元素是:, result)
这里的i in dict中i指的是字典中的key。 字典的循环 for key in dict:for key in book.keys():print(key)for value in book.values():print(value)for item in dict.items():keyitem[0]valueitem[1]for key,value in dict.items () 计算器
主要是考强制类型转换
class Solution:def solve(self, op, num_1, num_2)::type op, num_1, num_2: str, int, int:rtype : Str#请在此添加代码实现计算并返回表达式的结果要求结果保留2位小数#********** Begin *********#if op:result num_1num_2if op-:result num_1-num_2if op*:result num_1*num_2if op/:result num_1/num_2return %.2f%result#********** End *********#
链表的构造
class Node:def __init__(self, value):self.value valueself.next Noneclass LinkedList:def __init__(self):self.head Noneself.pNonedef add_node(self, value):########## Begin ##########nodeNode(value)if self.headNone:self.headnodeself.pself.headelse:self.p.nextnodeself.pnode########## End ##########def print_list(self):current self.headwhile current:print(current.value, end )current current.nextif __name__ __main__:# 获取用户输入的整数列表input_list list(map(int, input().split())) # 请输入整数列表以空格分隔# 构造链表linked_list LinkedList()for num in input_list:linked_list.add_node(num)# 打印链表节点值linked_list.print_list() #链表的节点值
线性表的构造
思路用列表list存储 class LinearList:def __init__(self):self.data []def add_element(self, element):########## Begin ##########self.data.append(element)########## End ##########def get_element(self, index):########## Begin ##########if indexlen(self.data):return self.data[index]else:return Error: Index out of range.########## End ##########def remove_element(self, index):########## Begin ##########result[]for i in range(len(self.data)):if i!index:result.append(self.data[i])self.dataresult########## End ########### 测试用例
if __name__ __main__:# 初始化线性表linear_list LinearList()# 添加元素并输出linear_list.add_element(10)linear_list.add_element(20)linear_list.add_element(30)print(linear_list.get_element(0)) # 输出10print(linear_list.get_element(2)) # 输出30# 删除元素并输出linear_list.remove_element(1)print(linear_list.get_element(2)) # 输出Error: Index out of range.
删除列表元素 del list1[2]
图遍历
1.深度遍历 思路 定义一个矩阵表示各个边之间的关系 定义一个数组存储表示是否遍历到所有的点visited 定义一个列表存储遍历到的点result 定义start表示出发的地点 基本想法首先从start开始出发进行深度遍历遍历矩阵中的start行如果值为1且visited[start]为False则将列下标存储到visited中。然后start从该下标开始重新遍历 def dfs(adj_matrix, start, visited, result):########## Begin ##########numadj_matrix[start]result.append(start)visited[start]Trueindex0while indexlen(adj_matrix[start]):for i in range(len(adj_matrix[start])):if adj_matrix[start][i]1 and visited[i]False:result.append(i)visited[i]Truestartibreakindexindex1for k in range(len(visited)):if visited[k]False:for j in range(len(adj_matrix[k])):if adj_matrix[k][j]1 and visited[j]True:visited[k]Trueresult.append(k)return result########## End ##########if __name__ __main__:N int(input()) # 输入城市景点的数量adj_matrix [list(map(int, input().split())) for _ in range(N)] # 输入邻接矩阵start int(input()) # 输入起始景点的编号visited [False] * Nresult []dfs(adj_matrix, start - 1, visited, result)print(*[x 1 for x in result]) # 输出深度优先遍历的结果