当前位置: 首页 > news >正文

如需锦州网站建设网站备案前置审批表

如需锦州网站建设,网站备案前置审批表,抖音网络推广怎么做,阿里网 网站备案流程用链式前向星实现孩子表示法 const int N 1e5 10; int id, e[2*N], ne[2*N], h[N];//哨兵位h存的是节点,ne和e两个数组存储的 //是父与子的关系,每条边都要存两遍,所以数组的大小要开两倍!!! void add(i…

用链式前向星实现孩子表示法

const int N = 1e5 + 10;
int id, e[2*N], ne[2*N], h[N];//哨兵位h存的是节点,ne和e两个数组存储的
//是父与子的关系,每条边都要存两遍,所以数组的大小要开两倍!!!
void add(int a, int b)
{id++;e[id] = a;ne[id] = h[a];h[a] = id;
}
int main()
{int n;cin >> n;for (int i = 1; i <= n; i++){int a, b;cin >> a >> b;add(a, b);add(b, a);}
}

深度优先遍历–DFS
法一:用vector实现

const int N = 1e5 + 10;
vector<int> edges[N];
bool st[N];
void dfs(int u)
{cout << u << " ";st[u] = true;for (auto v : edges[u]){if (!st[v]){dfs(v);}}
}
int main()
{int n;cin >> n;for (int i = 1; i < n; i++){int a, b;cin >> a >> b;edges[a].push_back(b);edges[b].push_back(a);}dfs(1);
}

法二:用链式前向星

const int N = 1e5 + 10;
int h[N], e[2 * N], ne[2 * N],id;
bool st[N];
void add(int a, int b)
{id++;e[id] = b;ne[id] = h[a];h[a] = id;
}
void dfs(int u)
{cout << u << " ";st[u] = true;for (int i = h[u]; i; i = ne[i]){int v = e[i];if (!st[v])dfs(v);}
}
int main()
{int n;cin >> n;for (int i = 1; i < n; i++){int a, b;cin >> a >> b;add(a, b);add(b, a);}dfs(1);
}

宽度优先遍历–BFS
法一:

#include <vector>
#include <queue>
using namespace std;
const int N = 1e5 + 10;
vector<int> edges[N];
bool st[N];
void bfs(int u)
{queue<int> q;q.push(1);st[1] = true;while (q.size()){auto u = q.front();q.pop();cout << u << " ";for (auto v : edges[u]){if (!st[v]){st[v] = true;q.push(v);}}}
}
int main()
{int n;cin >> n;for (int i = 1; i < n; i++){int a, b;cin >> a >> b;edges[a].push_back(b);edges[b].push_back(a);}bfs(1);return 0;
}

法二:

const int N = 1e5 + 10;
int h[N], e[2 * N], ne[2 * N], id;
bool st[N];
void bfs(int u)
{queue<int> q;q.push(u);st[u] = true;cout << u << " ";for (int i = h[u]; i; i = ne[i]){int v = e[i];if (!st[v]){q.push(v);st[v] = true;}}
}
void add(int a, int b)
{id++;e[id] = b;ne[id]=h[a];h[a] = id;
}
int main()
{int n;cin >> n;for (int i = 1; i < n; i++){int a, b;cin >> a >> b;add(a, b);add(b, a);}bfs(1);return 0;
}

二叉树问题
https://www.luogu.com.cn/problem/P3884

#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int N = 110;
int n;
vector<int> edges[N];
int fa[N], dist[N];
int dfs(int u)
{int ret = 0;for (auto v : edges[u]){ret = max(ret, dfs(v));}return ret + 1;
}
int bfs()
{queue<int> q;q.push(1);int ret = 0;while (q.size()){int sz = q.size();ret = max(ret, sz);while (sz--){int u = q.front();q.pop();for (auto v : edges[u]){q.push(v);}}}return ret;
}
int main()
{cin >> n;for (int i = 1; i < n; i++){int u, v;cin >> u >> v;edges[u].push_back(v);fa[v] = u;}cout << dfs(1) << endl;cout << bfs() << endl;int x, y;while (x != 1){dist[fa[x]] = dist[x] + 1;x = fa[x];}int len = 0;while (y != 1 && dist[y] == 0){len++;y = fa[y];}cout << dist[y] * 2 + len << endl;return 0;
}

已知前序,中序遍历求后序遍历

string a,b;
void dfs2(int l1, int r1, int l2, int r2)
{if (l1 > r1) return;int p = l1;while (a[p]!= b[l2])p++;dfs2(l1, p - 1, l2 + 1, l2 + p - l1);dfs2(p + 1, r1, l2 + p - l1 + 1, r2);cout << b[l2];
}
int main()
{cin >> a >> b;dfs2(0, a.size() - 1, 0, b.size());return 0;
}
http://www.dtcms.com/a/478873.html

相关文章:

  • 什么网站资源多东营最新通知
  • Docker图形化管理,轻松上手docker
  • C#利用.Net8.0新建站Mvc项目及支持Swagger服务的操作方法
  • 怎么做个手机版的网站吗购买网店
  • 网站做外链的具体步骤免费建站哪家性价比高
  • 波动率聚类现象对ETF网格密度配置的启示与应对策略
  • Vis-NIR 与 MIR 光谱的三种传感器融合及建模流程
  • Kuikly 小白拆解系列 · 第1篇|两棵树直调(Kotlin 构建与原生承载)
  • 知识就是力量——Docker 快速入门
  • 国际带宽增长与用户体验下降的悖论
  • 怎么让别人做网站看片狂人
  • 粉末涂料做网站有用吗怎么看网站的备案信息
  • 搭建Vue3工程(去除不必要的文件)
  • javaWeb-前端初识-html、css-网页标题制作
  • python的进程间通信
  • 【思考】结构化地让大脑反复“重新理解”知识
  • 百度网盘不限速下载网站(完全免费)
  • 做网站的销售团队东莞市路桥收费所
  • 浅谈 自适应学习
  • 丰都县网站安卓系统开发工具
  • ◆comfyUI教程◆第2章06节 controlnet基础控制类型-线条类
  • DQPSK 调制的基本原理
  • 网络协议分层:解密TCP/IP五层模型
  • 邢台集团网站建设html登录页面代码
  • 【开题答辩全过程】以 办公耗材采购与领用管理系统设计与实现为例,包含答辩的问题和答案
  • 重生之我在大学自学鸿蒙开发第三天-《三层架构》
  • 深入linux的审计服务auditd —— 筑梦之路
  • 杭州拱墅网站建设软文发布平台乐云seo
  • AL2系统下编译安装PSQL16.4版本
  • wrapper+ xml文件进行SQL编写