DS|图(拓扑排序和最短路径)

题目一:DS图 -- 图的最短路径(无框架)

题目描述:

给出一个图的邻接矩阵,输入顶点v,用迪杰斯特拉算法求顶点v到其它顶点的最短路径。

输入要求:

第一行输入t,表示有t个测试实例

第二行输入顶点数n和n个顶点信息

第三行起,每行输入邻接矩阵的一行,以此类推输入n行

第i个结点与其它结点如果相连则为距离,无连接则为0,数据之间用空格隔开。

第四行输入一个顶点v,表示求该顶点v到其他顶点的最短路径距离

以此类推输入下一个示例

输出要求:

对每组测试数据,输出:

每行输出顶点v到某个顶点的最短距离和最短路径

每行格式:顶点v编号-其他顶点编号-最短路径值----[最短路径]。没有路径输出:顶点v编号-其他顶点编号--1。具体请参考示范数据

输入样例:

2
5 0 1 2 3 4
0 5 0 7 15
0 0 5 0 0
0 0 0 0 1
0 0 2 0 0
0 0 0 0 0
0
6 V0 V1 V2 V3 V4 V5
0 0 10 0 30 100
0 0 5 0 0 0
0 0 0 50 0 0
0 0 0 0 0 10
0 0 0 20 0 60
0 0 0 0 0 0
V0

输出样例:

0-1-5----[0 1 ]
0-2-9----[0 3 2 ]
0-3-7----[0 3 ]
0-4-10----[0 3 2 4 ]
V0-V1--1
V0-V2-10----[V0 V2 ]
V0-V3-50----[V0 V4 V3 ]
V0-V4-30----[V0 V4 ]
V0-V5-60----[V0 V4 V3 V5 ]

代码示例:

#include <iostream>
#include <string>
#include <cstring>
#include <iomanip>
#include <algorithm>
#include <cmath>
#include <queue>
using namespace std;class Map {
private:int** array;string* vertex;string start_vertex;int n;bool visited[50];int partnumber;int** reach;vector<int>* path;int* distance;
public:Map() {cin >> n;array = new int* [n];reach = new int* [n];for (int i = 0; i < n; i++) {array[i] = new int[n];reach[i] = new int[n];for (int j = 0; j < n; j++) array[i][j] = 0, reach[i][j] = 0;}vertex = new string[n];path = new vector<int>[n];distance = new int[n];for (int i = 0; i < n; i++) vertex[i] = i, distance[i] = 0;partnumber = 0;memset(visited, false, sizeof(visited));}int findIndex(string num) {for (int i = 0; i < n; i++) if (num == vertex[i]) return i;return -1;}void createMap() {int m, v1, v2;string num1, num2;cin >> m;for (int i = 0; i < m; i++) {cin >> num1 >> num2;v1 = findIndex(num1);v2 = findIndex(num2);array[v1][v2] = 1, array[v2][v1] = 1;}}void buildMap() {for (int i = 0; i < n; i++) cin >> vertex[i];for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) cin >> array[i][j];}cin >> start_vertex;}void Dijkstra() {int startIndex = findIndex(start_vertex);for (int i = 0; i < n; i++) {if (array[startIndex][i]) {distance[i] = array[startIndex][i];path[i].push_back(startIndex);path[i].push_back(i);}}visited[startIndex] = true;for (int i = 0; i < n - 1; i++) {int minDistance = 0x3f3f3f;int minPosition = 0;for (int j = 0; j < n; j++) {if (!visited[j] && distance[j] && distance[j] < minDistance) {minPosition = j, minDistance = distance[j];}}visited[minPosition] = true;for (int j = 0; j < n; j++)if (array[minPosition][j] && !visited[j] && (minDistance + array[minPosition][j] < distance[j] || distance[j] == 0)) {distance[j] = minDistance + array[minPosition][j];path[j] = path[minPosition];path[j].push_back(j);}}for (int i = 0; i < n; i++) {if (i == findIndex(start_vertex)) continue;if (distance[i]) {cout << start_vertex << '-' << vertex[i] << '-' << distance[i] << "----[";for (auto& it : path[i]) cout << vertex[it] << ' ';cout << "]" << endl;}else cout << start_vertex << '-' << vertex[i] << "--1" << endl;}}~Map() {for (int i = 0; i < n; i++) delete[]array[i];delete[]array;delete[]vertex;}
};int main() {int t;cin >> t;while (t--) {Map M;M.buildMap();M.Dijkstra();}
}

题目二:DS图 -- 拓扑排序

题目描述:

已知有向图,顶点从0开始编号,求它的求拓扑有序序列。

拓扑排序算法:给出有向图邻接矩阵
1.逐列扫描矩阵,找出入度为0且编号最小的顶点v

2.输出v,并标识v已访问

3.把矩阵第v行全清0

重复上述步骤,直到所有顶点输出为止

输入要求:

第一行输入一个整数t,表示有t个有向图

第二行输入n,表示图有n个顶点

第三行起,输入n行整数,表示图对应的邻接矩阵

以此类推输入下一个图的顶点数和邻接矩阵

输出要求:

每行输出一个图的拓扑有序序列

输入样例:

2
5
0 1 0 1 1
0 0 1 0 0
0 0 0 0 1
0 0 1 0 0
0 0 0 0 0
7
0 0 0 0 0 0 0
1 0 1 1 0 0 0
1 0 0 0 0 0 0
1 0 1 0 0 0 0
0 0 0 0 0 1 1
0 1 0 0 0 0 0
0 0 0 1 0 1 0

输出样例:

0 1 3 2 4 
4 6 5 1 3 2 0 

代码示例:

#include <iostream>
using namespace std;class Map {
private:int** array;string* vertex;string start_vertex;int n;bool visited[50];int partnumber;int** reach;int origin[20];int* indegree;
public:Map() {cin >> n;array = new int* [n];reach = new int* [n];for (int i = 0; i < n; i++) {array[i] = new int[n];reach[i] = new int[n];for (int j = 0; j < n; j++) array[i][j] = 0, reach[i][j] = 0;}vertex = new string[n];indegree = new int[n];for (int i = 0; i < n; i++) vertex[i] = i, indegree[i] = 0;partnumber = 0;for (int i = 0; i < 50; i++) visited[i] = false;}int findIndex(string num) {for (int i = 0; i < n; i++) if (num == vertex[i]) return i;return -1;}void createMap() {int m, v1, v2;string num1, num2;cin >> m;for (int i = 0; i < m; i++) {cin >> num1 >> num2;v1 = findIndex(num1);v2 = findIndex(num2);array[v1][v2] = 1, array[v2][v1] = 1;}}void buildMap() {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cin >> array[i][j];if (array[i][j]) indegree[j]++;}}}void topologySort() {int times = n;while (times--) {for (int i = 0; i < n; i++) {if (!indegree[i] && !visited[i]) {cout << i << ' ';visited[i] = true;;for (int j = 0; j < n; j++) {if (array[i][j] != 0) indegree[j]--, array[i][j] = 0;}break;}}}cout << endl;}void printMap() {for (int i = 0; i < n; i++) {cout << vertex[i];if (i == n - 1) cout << endl;else cout << " ";}for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {cout << array[i][j];if (j == n - 1) cout << endl;else cout << " ";}}}~Map() {for (int i = 0; i < n; i++) delete[]array[i];delete[]array;delete[]vertex;}
};int main() {int t;cin >> t;while (t--) {Map M;M.buildMap();M.topologySort();}
}

题目三:DS图 -- 货币套汇(图路径)

题目描述:

套汇是指利用货币汇兑率的差异将一个单位的某种货币转换为大于一个单位的同种货币。例如,假定1 美元可以买0.7 英镑,1 英镑可以买9.5 法郎,1法郎可以买到0.16美元。通过货币兑换,一个商人可以从1 美元开始买入,得到0.7×9.5×0.16=1.064美元,从而获得6.4%的利润。 给定n种货币c1 ,c2 ,... ,cn的有关兑换率,试设计一个有效算法,确定货币间是否存在套汇的可能性。

提示:判断图上是否出现正环,即环上所有的边相乘大于1

输入要求:

第一行:测试数据组数

每组测试数据格式为:

第一行:正整数n (1< =n< =30),正整数m,分别表示n种货币和m种不同的货币兑换率。

2~n+1行,n种货币的名称。

n+2~n+m+1行,每行有3 个数据项ci,rij 和cj ,表示货币ci 和cj的兑换率为 rij。

输出要求:

对每组测试数据,如果存在套汇的可能则输出YES

如果不存在套汇的可能,则输出NO。

输入样例:

2
3 3
USDollar
BritishPound
FrenchFranc
USDollar 0.5 BritishPound
BritishPound 10.0 FrenchFranc
FrenchFranc 0.21 USDollar
3 6
USDollar
BritishPound
FrenchFranc
USDollar 0.5 BritishPound
USDollar 4.9 FrenchFranc
BritishPound 10.0 FrenchFranc
BritishPound 1.99 USDollar
FrenchFranc 0.09 BritishPound
FrenchFranc 0.19 USDollar

输出样例:

YES
NO

代码示例:

#include <iostream>
#include <queue>
using namespace std;class Map {
private:double** array;string* vertex;string start_vertex;int n;int m;bool visited[50];int partnumber;int** reach;int origin[20];int* indegree;
public:Map() {cin >> n >> m;array = new double* [n];reach = new int* [n];for (int i = 0; i < n; i++) {array[i] = new double[n];reach[i] = new int[n];for (int j = 0; j < n; j++) array[i][j] = 0, reach[i][j] = 0;}vertex = new string[n];indegree = new int[n];for (int i = 0; i < n; i++) cin >> vertex[i], indegree[i] = 0;partnumber = 0;for (int i = 0; i < 50; i++) visited[i] = false;}int findIndex(string num) {for (int i = 0; i < n; i++) if (num == vertex[i]) return i;return -1;}void createMap() {int v1, v2;double er;string num1, num2;for (int i = 0; i < m; i++) {cin >> num1 >> er >> num2;v1 = findIndex(num1);v2 = findIndex(num2);array[v1][v2] = er;}}void Arbitrage() {for (int i = 0; i < n; i++) {queue<string> q;q.push(vertex[i]);int head = i;for (int k = 0; k < n; k++) {for (int j = 0; j < n; j++) {if (vertex[j] == q.front()) {q.push(vertex[j]);double sum = 1;while (q.size() > 1) {int x = findIndex(q.front());q.pop();int y = findIndex(q.front());sum *= array[x][y];}if (sum > 1) {cout << "YES" << endl;return;}}else if (array[head][j]) {q.push(vertex[j]);head = j;continue;}}}}cout << "NO" << endl;}~Map() {for (int i = 0; i < n; i++) delete[]array[i];delete[]array;delete[]vertex;}
};int main() {int t;cin >> t;while (t--) {Map M;M.createMap();M.Arbitrage();}
}

题目四:DS图 -- 关键路径-STL版

题目描述:

给定有向图无环的边信息,求每个顶点的最早开始时间、最迟开始时间。

输入要求:

第一行图的顶点总数

第二行边的总数

第三行开始,每条边的时间长度,格式为源结点   目的结点   长度

输出要求:

第一行:第个顶点的最早开始时间

第二行:每个顶点的最迟开始时间

输入样例:

9
12
0 1 3
0 2 10
1 3 9
1 4 13
2 4 12
2 5 7
3 6 8
3 7 4
4 7 6
5 7 11
6 8 2
7 8 5

输出样例:

0 3 10 12 22 17 20 28 33 
0 9 10 23 22 17 31 28 33 

代码示例:

#include <iostream>
#include <vector>
#include <queue>
using namespace std;const int MAX_NODES = 1e5 + 20;
int num_nodes, num_edges, in_degree[MAX_NODES], order_count, top_order[MAX_NODES];
vector<int> adjacency[MAX_NODES], weights[MAX_NODES];
int earliest_completion[MAX_NODES], latest_completion[MAX_NODES];void topological_sort() {queue<int> q;for (int i = 0; i < num_nodes; i++) {if (in_degree[i] == 0) q.push(i);}while (!q.empty()) {int current_node = q.front();q.pop();top_order[++order_count] = current_node;for (int i = 0; i < adjacency[current_node].size(); i++) {int neighbor = adjacency[current_node][i];if (--in_degree[neighbor] == 0) q.push(neighbor);}}
}int main() {cin >> num_nodes >> num_edges;while (num_edges--) {int from, to, weight;cin >> from >> to >> weight;adjacency[from].push_back(to);in_degree[to]++;weights[from].push_back(weight);}topological_sort();for (int k = 1; k <= order_count; k++) {int current_node = top_order[k];for (int i = 0; i < adjacency[current_node].size(); i++) {int neighbor = adjacency[current_node][i], edge_weight = weights[current_node][i];earliest_completion[neighbor] = max(earliest_completion[neighbor], earliest_completion[current_node] + edge_weight);}}for (int i = 0; i < num_nodes; i++) {cout << earliest_completion[i] << " ";latest_completion[i] = earliest_completion[top_order[order_count]];}cout << endl;for (int v = order_count; v >= 1; v--) {int current_node = top_order[v];for (int i = 0; i < adjacency[current_node].size(); i++) {int neighbor = adjacency[current_node][i], edge_weight = weights[current_node][i];latest_completion[current_node] = min(latest_completion[current_node], latest_completion[neighbor] - edge_weight);}}for (int i = 0; i < num_nodes; i++) {cout << latest_completion[i] << " ";}return 0;
}

题目五:DS图 -- 旅游规划

题目描述:

有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。

输入要求:

输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S是出发地的城市编号;D是目的地的城市编号。随后的M行中,每行给出一条高速公路的信息,分别是:城市1、城市2、高速公路长度、收费额,中间用空格分开,数字均为整数且不超过500。输入保证解的存在。

输出要求:

在一行里输出路径的长度和收费总额,数字间以空格分隔,输出结尾不能有多余空格。

输入样例:

4 5 0 3
0 1 1 20
1 3 2 30
0 3 4 10
0 2 2 20
2 3 1 20

输出样例:

3 40

代码示例:

#include <iostream>
#include <queue>
using namespace std;class Map {
private:int** array;int** fee;string* vertex;string start_vertex, end_vertex;int n;int m;bool visited[50];int partnumber;int** reach;int origin[20];int* indegree;
public:Map() {cin >> n >> m >> start_vertex >> end_vertex;array = new int* [n];fee = new int* [n];reach = new int* [n];for (int i = 0; i < n; i++) {array[i] = new int[n];fee[i] = new int[n];reach[i] = new int[n];for (int j = 0; j < n; j++) array[i][j] = 0x3f3f3f, fee[i][j] = 0x3f3f3f, reach[i][j] = 0;}vertex = new string[n];indegree = new int[n];for (int i = 0; i < n; i++) vertex[i] = i + '0', indegree[i] = 0;partnumber = 0;for (int i = 0; i < 50; i++) visited[i] = false;}int findIndex(string num) {for (int i = 0; i < n; i++) if (num == vertex[i]) return i;return -1;}void createMap() {int v1, v2;int dis, cost;string num1, num2;for (int i = 0; i < m; i++) {cin >> num1 >> num2 >> dis >> cost;v1 = findIndex(num1);v2 = findIndex(num2);array[v1][v2] = dis, fee[v1][v2] = cost;}}void Floyd() {for (int k = 0; k < n; k++) {for (int i = 0; i < n; i++) {for (int j = 0; j < n; j++) {if (array[i][j] > array[i][k] + array[k][j]) {array[i][j] = array[i][k] + array[k][j];fee[i][j] = fee[i][k] + fee[k][j];}else if (array[i][j] == array[i][k] + array[k][j]) {fee[i][j] = min(fee[i][j], fee[i][k] + fee[k][j]);}}}}cout << array[findIndex(start_vertex)][findIndex(end_vertex)] << " " << fee[findIndex(start_vertex)][findIndex(end_vertex)] << endl;}~Map() {for (int i = 0; i < n; i++) delete[]array[i];delete[]array;delete[]vertex;}
};int main() {Map M;M.createMap();M.Floyd();
}

题目六:DS图 -- 拯救007

题目描述:

在老电影“007之生死关头”(Live and Let Die)中有一个情节,007被毒贩抓到一个鳄鱼池中心的小岛上,他用了一种极为大胆的方法逃脱 —— 直接踩着池子里一系列鳄鱼的大脑袋跳上岸去!(据说当年替身演员被最后一条鳄鱼咬住了脚,幸好穿的是特别加厚的靴子才逃过一劫。)

设鳄鱼池是长宽为100米的方形,中心坐标为 (0, 0),且东北角坐标为 (50, 50)。池心岛是以 (0, 0) 为圆心、直径15米的圆。给定池中分布的鳄鱼的坐标、以及007一次能跳跃的最大距离,你需要告诉他是否有可能逃出生天。

输入要求:

首先第一行给出两个正整数:鳄鱼数量 N(≤100)和007一次能跳跃的最大距离 D。随后 N 行,每行给出一条鳄鱼的 (x,y) 坐标。注意:不会有两条鳄鱼待在同一个点上。

输出要求:

如果007有可能逃脱,就在一行中输出"Yes",否则输出"No"。

输入样例:

14 20
25 -15
-25 28
8 49
29 15
-35 -2
5 28
27 -29
-8 -28
-20 -35
-25 -20
-13 29
-30 15
-35 40
12 12

输出样例:

Yes

代码示例:

#include <iostream>
#include <cmath>
#include <queue>using namespace std;
int N;
double D;
bool visited[100];
struct point {double x, y;
} points[105];bool BFS(int n) {queue<int> q;for (int i = 0; i < 100; ++i) visited[i] = false;q.push(n);visited[n] = true;while (!q.empty()) {int f = q.front();q.pop();if (50 - fabs(points[f].x) <= D || 50 - fabs(points[f].y) <= D) return true;for (int i = 0; i < N; ++i) {if (!visited[i] && (points[f].x - points[i].x) * ((points[f].x - points[i].x)) + (points[f].y - points[i].y) * (points[f].y - points[i].y) <= D * D) {q.push(i);visited[i] = true;}}}return false;
}int main() {cin >>  N >> D;double x, y;for (int i = 0; i < N; ++i) {cin >> x >> y;points[i] = { x, y };}if (D >= 50 - 7.5) {cout << "Yes" << endl;return 0;}for (int i = 0; i < N; ++i) {if ((D + 7.5) * (D + 7.5) >= points[i].x * points[i].x + points[i].y * points[i].y) {if (BFS(i)) {cout << "Yes" << endl;return 0;}}}cout << "No" << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/600827.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

嵌入式实时操作系统的设计与开发——启动内核

RTOS的引导模式 RTOS的引导是指将操作系统装入内存并开始执行的过程。 在嵌入式系统的实际应用中&#xff0c;针对不同应用环境&#xff0c;对时间效率和空间效率有不同的要求。 时间限制主要包括两种情况&#xff1a;系统要求快速启动和系统启动后要求程序能实时运行。空间限…

人工智能:模拟人类智慧的科技奇迹

人工智能&#xff08;Artificial Intelligence&#xff0c;简称AI&#xff09;作为一项模拟人类智慧行为的科学与技术&#xff0c;正以惊人的速度改变着我们的世界。它旨在让计算机系统具备感知、推理、学习、决策和交互等人类智慧的能力&#xff0c;成为当今科技领域的巨大突破…

SpringCloud微服务 【实用篇】| Dockerfile自定义镜像、DockerCompose

目录 一&#xff1a;Dockerfile自定义镜像 1. 镜像结构 2. Dockerfile语法 3. 构建Java项目 二&#xff1a; Docker-Compose 1. 初识DockerCompose 2. 部署微服务集群 前些天突然发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;…

Jupyter Lab | 在指定文件夹的 jupyter 中使用 conda 虚拟环境

Hi&#xff0c;大家好&#xff0c;我是源于花海。本文主要了解如何在指定文件夹的 jupyter 中使用 conda 虚拟环境&#xff0c;即在 conda 里面创建虚拟环境、将虚拟环境添加至 jupyter lab/notebook、安装软件包。 目录 一、创建虚拟环境 二、激活并进入虚拟环境 三、安装 …

OpenAI 拟每年投入 100-500 万美元,以获取新闻使用许可

最近两位媒体公司高层透露&#xff0c;OpenAI正积极与新闻出版公司进行谈判&#xff0c;提出每年投入100万至500万美元的费用&#xff0c;以获取将新闻文章用于训练大型语言模型的授权。 OpenAI目前正与大约十几家媒体公司进行谈判&#xff0c;但有报道称&#xff0c;即使对于…

【LeetCode】197. 上升的温度

表&#xff1a; Weather ------------------------ | Column Name | Type | ------------------------ | id | int | | recordDate | date | | temperature | int | ------------------------ id 是该表具有唯一值的列。 该表包含特定日期的温…

基于 Python+Django 技术栈,我开发了一款视频管理系统

学习过程中&#xff0c;遇到问题可以咨询作者 大家好&#xff0c;作为一名开发人员&#xff0c;平时比较愿意动手尝试各种有意思工具&#xff0c;因为笔者非常喜欢观看视频&#xff0c;尤其是YouTube、bilibili都是笔者非常喜欢的视频网站&#xff0c;所以想自己实现一个视频点…

Anaconda + Pytorch 超详细安装教程

Anaconda Pytorch 超详细安装教程 安装 Anaconda 略,自行百度即可 安装 Pytorch 虚拟环境 第一步 选择 env第二步 创建第三步 填写环境名称和选择 python 版本号 第四步 打开 https://pytorch.org/ 选择 pytorch 版本&#xff0c;我这里选择的是 GPU 版本 即 CUDA 11.8,也…

Unity组件开发--传送点

本组件仅实现A传送点到B传送的功能&#xff0c;是可以双向传送的&#xff0c;如果只要单向传送&#xff0c;可以另外改脚本实现&#xff1b; 先看效果&#xff1a; unity组件传送点演示 1.传送组件shader是怎么写的&#xff1a;这种效果的实现方案 shader编辑器是这样的&#…

国内代理IP推荐!

国内代理IP&#xff0c;日更新50w IP&#xff0c;全国200城市&#xff0c;可利用率高达99%。提供HTTP/HTTPS/SOCKS5协议&#xff0c;满足数据采集、爬虫业务需求。丰富的api参数选择&#xff0c;可自由选择时效地区等&#xff0c;按需求过滤重复资源。低延迟&#xff0c;提供丰…

Linux第20步_在虚拟机上安装“Visual Studio Code”

1、双击windows系统桌面上的“FileZilla Client.exe”&#xff0c;打开FTP客户端&#xff0c;点击03软件下的Visual Studio Code&#xff0c;发现code_1.50.1-1602600906_amd64。 2、点击“文件”&#xff0c;然后点击“站点管理器”&#xff0c;见下图操作&#xff1a; 3、点…

Flask 会员列表展示

感谢编程浪子师傅的源码信息分享 web/controllers/member/Member.py # -*- coding: utf-8 -*- from flask import Blueprint,request,redirect,jsonify from common.libs.Helper import ops_render,iPagination,getCurrentDate,getDictFilterField,selectFilterObj from comm…

Spring学习之——AOP(面向切面)

AOP 概念 AOP&#xff1a;全称是Aspect Oriented Programming即&#xff1a;面向切面编程。 简单的说它就是把我们程序重复的代码抽取出来&#xff0c;在需要执行的时候&#xff0c;使用动态代理的技术&#xff0c;在不修改源码的基础上&#xff0c;对程序进行增强&#xff…

24年初级会计资格考试报名信息采集流程共10大步骤,千万不要搞错

2024年初级会计资格考试报名信息采集流程共10大步骤&#xff0c;不要搞错哦&#xff1b; 第一步&#xff1a;输入证件号、点击登录 第二步&#xff1a;阅读采集须知 第三步&#xff1a;填写个人信息&#xff08;支付宝搜索"亿鸣证件照"或者微信搜索"随时照&q…

数据结构与算法教程,数据结构C语言版教程!(第二部分、线性表详解:数据结构线性表10分钟入门)八

第二部分、线性表详解&#xff1a;数据结构线性表10分钟入门 线性表&#xff0c;数据结构中最简单的一种存储结构&#xff0c;专门用于存储逻辑关系为"一对一"的数据。 线性表&#xff0c;基于数据在实际物理空间中的存储状态&#xff0c;又可细分为顺序表&#xff…

【c语言】指针小结

一、指针是什么&#xff1f; 可以通过运算符&来取得变量实际保存的 起始地址 。 &#xff08;这个地址是虚拟地址&#xff0c;并不是真正物理内存上的地址。&#xff09; 数据类型 *标识符 &变量; int *pa &a; int *pa NULL; (NULL表示地址为0的内存空间&a…

Apache SeaTunnel:探索下一代高性能分布式数据集成工具

大家下午好&#xff0c;我叫刘广东&#xff0c;然后是来自Apache SeaTunnel社区的一名Committer。今天给大家分享的议题是下一代高性能分布式海量数据集成工具&#xff0c;后面的整个的PPT&#xff0c;主要是基于开发者的视角去看待Apache SeaTunnel。后续所有的讲解主要是可能…

52、Flink的应用程序参数处理-ParameterTool介绍及使用示例

Flink 系列文章 一、Flink 专栏 Flink 专栏系统介绍某一知识点&#xff0c;并辅以具体的示例进行说明。 1、Flink 部署系列 本部分介绍Flink的部署、配置相关基础内容。 2、Flink基础系列 本部分介绍Flink 的基础部分&#xff0c;比如术语、架构、编程模型、编程指南、基本的…

LeetCode第102题 - 二叉树的层序遍历

题目 解答 class Solution {List<List<Integer>> nodeLevels new ArrayList<>();public List<List<Integer>> levelOrder(TreeNode root) {levelOrder(root, 0);return nodeLevels;}public void levelOrder(TreeNode root, int k) {if (root …

噬菌体序列分析工具PhaVa的使用和使用方法

github: 25280841/PhaVa: Adapting the phasefinder approach for identifying phase variation to long reads (github.com) 挺简单的&#xff0c;这里就不翻译了&#xff0c;大家看着直接用吧。 PhaVa PhaVa is an approach for finding potentially Phase Variable invert…