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

建设银行官网站下载中国科技新闻网

建设银行官网站下载,中国科技新闻网,一个人可以做几个网站,抖音代运营公司靠谱吗用链式前向星实现孩子表示法 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/wzjs/164319.html

相关文章:

  • 云上网站做等保如何在百度发布广告
  • sql2008做网站seo怎么赚钱
  • wordpress小说主题模板下载seo 推广教程
  • 温州网站建设wzwmwl网络游戏推广平台
  • 电子商务网站开发的步骤谷歌手机版下载安装
  • 怎样做企业营销网站郑州seo线上推广系统
  • 西安学校部门定制网站建设公司外贸seo软文发布平台
  • 如何做网站栏目外贸展示型网站建设公司
  • 做网站怎么云存储十大微商推广平台
  • 东营建网站百度搜索量怎么查
  • wordpress 分类列表插件seo网络营销技巧
  • 网站域名做跳转要收费吗百度站长工具链接提交
  • 网站建设交付2022年最好用的搜索引擎
  • 站长推荐自动跳转百度的网址是什么呢
  • 泉州做网站的公司湖南seo优化报价
  • 网站建设 设备济南做网站公司哪家好
  • 已经有网站了 怎么做app网络推广优化是干啥的
  • 长春做网站4435seo优化是指
  • 杭州网站开发招聘厦门谷歌seo公司
  • 网站信息内容建设谷歌seo什么意思
  • 沈阳的网站制作公司种子搜索神器
  • 河北建设工程信息网官网官网官如何优化seo技巧
  • 建材网站建设功能方案上海抖音seo公司
  • 网站内容与目录结构百度注册网站怎么弄
  • 广告游戏金华seo扣费
  • 网站优化排名方案域名备案
  • 太原市城市建设拆迁中心网站发布项目信息的平台
  • 提供定制型网站建设百度在西安有分公司吗
  • 泾川县门户网站留言企业官网怎么做
  • 网站升级改版需要多久郑州网站建设哪里好