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

酒店设计的网站建设夜狼seo

酒店设计的网站建设,夜狼seo,广州网站开发系统,织梦仿非织梦网站用链式前向星实现孩子表示法 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/424275.html

相关文章:

  • 湿地公园网站建设网站注册信息查询
  • 个人网站备案名称填写网推软件有哪些
  • 图标的网站徐州网页关键词优化
  • 阿里云1m 宽带做网站服务器做外贸推广
  • 武汉企业制作网站东莞seo建站如何推广
  • 公司网站优化去哪里学吸引人的软文标题
  • 如何做淘客发单网站html模板网站
  • 网站开发有限公司企业网站推广渠道有哪些
  • 网站维护运营怎么做一个新公众号怎么吸粉
  • wordpress 插件库 思路企业seo网站营销推广
  • 重庆包装设计公司seo的培训课程
  • flash做的网站百度网页版链接地址
  • 织梦怎么做手机网站网络营销策划书8000字
  • 餐饮业手机php网站怎样做市场营销策划
  • 网站支付接口怎么做网站关键词如何快速上首页
  • 河南金建建设集团网站长沙网站推广和优化
  • 商务网站开发的基本流程上海网站快速排名优化
  • 网站域名 空间南宁百度seo排名
  • 阿里云网站建设方案书长沙弧度seo
  • 济南网站开发培训班重庆高端品牌网站建设
  • wordpress 公众号采集器网站关键词优化方法
  • 部队网站建设报告长沙网站推广智投未来
  • 福州网站建站建设企业网站怎么注册官网
  • 建设厅八大员报名网站seo技术平台
  • 陕西专业网站开发多少钱建立网站平台需要多少钱
  • 福州企业网站建设专业服务磁力链最佳的搜索引擎
  • 全球国家综合实力排名湖南seo优化服务
  • 国内外婚纱网站建设现状深圳网站搜索优化工具
  • 网站开发都是用什么做的北京seo技术交流
  • 无锡做网站要多少钱宁波seo快速优化课程