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

南海建设网站公司网站建设精英

南海建设网站,公司网站建设精英,河南网站建设设计价格,模板设计图一.链式前向星 所谓链式前向星,就是用链表的方式实现树。其中的链表是用数组模拟实现的链表。 首先我们需要创建一个足够大的数组h,作为所有结点的哨兵位。创建两个足够大的数组e和ne,一个作为数据域,一个作为指针域。创建一个变…

一.链式前向星

所谓链式前向星,就是用链表的方式实现树。其中的链表是用数组模拟实现的链表。

首先我们需要创建一个足够大的数组h,作为所有结点的哨兵位。创建两个足够大的数组e和ne,一个作为数据域,一个作为指针域。创建一个变量id,标记新来结点存储的位置。

接下来是模拟实现,当x有一个孩子y的时候,就把y头插到x的链表中。

首先id++,e[id] = y,为y结点开辟一块位置存储;接着我们用 ne[id] = h[x] 通过指针的思想,在y的指针域内存储上x的信息,最后将h[x] = id,将y的信息给x,为其他元素提供指针域信息。2d17ae384be046bb8a1aef1ba20ad042.jpeg

例如我们要在4上存2,先id++将2存储到数组中,令e[id] = 2,接着我们将ne[id] = h[4],(先前的下标4中存储的是4),最后h[4] = id 存储指针域信息。那么这就相当于下标4中的h指向id = 5,e[5] 中存储的是结点2,2结点的指针域指向id = 4的下标,id = 4的下标中e[4] ,存储的是结点3。所以4结点就与2结点和3结点相连接。树就被模拟实现出来了。

下面是代码实现:

#include <iostream>
using namespace std;int n;
const int N = 10;
int e[2 * N], ne[2 * N], h[N];//因为每个点都包含自己和其他,所以需要开辟结点大约2倍的空间
int id;void add(int x, int y)
{id++;e[id] = y;ne[id] = h[x];h[x] = id;
}int main()
{cin >> n;for (int i = 1; i < n; i++)//n个元素n-1条边{int a, b; cin >> a >> b;add(a, b); add(b, a);//将每一个结点都单独分开计算,所以需要调用两次函数}return 0;
}

 二.顺序表实现树

我们的思想是,为每一个结点开辟一个数组,用map的思想,将数据的实际值与其下标进行对应减少复杂度,在对应的数组下标下存储其结点的值。

需要注意的是,此方法适合在算法竞赛中使用,使用的都是静态数组,需要人为的进行判断数组实际需要的大小。

接下来是代码实现:

#include <iostream>
#include <vector>
using namespace std;const int N = 1e5 + 10;
int n;
vector<int> edges[N]; // 存储树int main()
{cin >> n;for (int i = 1; i < n; i++){int a, b; cin >> a >> b;// a 和 b 之间有⼀条边edges[a].push_back(b);edges[b].push_back(a);}return 0;
}

总结:

无论是顺序表实现还是链表思想实现,他们都有优缺点。优点在于不需要频繁的进行动态空间的开辟能减少运行的时间,缺点在于需要人为的对数据量进行判断以及缺少一些灵活性。所以说,这两种方法只适合于算法竞赛中,而工程类当中是不合适的。

创作不易感谢大家支持!

 

http://www.yayakq.cn/news/447853/

相关文章:

  • 狮山公司网站建设沈阳seo自然优化排名
  • 网站怎么接广告赚钱网站开发安全维护
  • jsp企业网站网络营销的发展历程
  • 哈尔滨自助建站系统在哪个网站找水利工地做
  • 德阳定制建站网站建设制作网站建设哪个
  • WordPress网站属于什么网站镇海做网站
  • 网站建设合同注意事项wordpress获取文章内图片不显示
  • 纯html5网站纺织网站制作123纺织网
  • 能免费用服务器的网站福建seo排名
  • 怎么做跳转网站 充值登陆常州网站建设公司效果
  • 个人做网站要缴税wordpress 顺序
  • 做详情页到那个网站找模特素材购物网站运作
  • python可以做网站前端免费设计网站
  • 犀牛云做网站怎么做wordpress meta seo
  • 程序员创业做网站做公众号wordpress app中文版
  • 淘客做网站怎么备案支付通道网站怎么做
  • 郑州做网站kuihuakeji泉州做网站优化公司
  • 做企业网站用什么软件青岛seo全网营销
  • 网站建设高端培训学校广东网站开发项目
  • 推广网站建设语句成都有什么互联网公司
  • 建设部指定招标网站网络营销自己做网站
  • 国外租车网站模板微商软件商城24小时
  • 网站策划与建设阶段个人怎么做公众号
  • wordpress vr网站南宁seo域名
  • 网站建设次年续费合同合肥企业建站系统
  • 视频网站发展好应该怎么做网站的着陆页
  • 企业网站seo推广企业网站制作素材
  • 电子购物网站建设个人网站整站下载
  • 让自己的电脑做网站的服务器辽宁网站制作公司
  • 从化市网站建设wap网站 区别