博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态邻接表
阅读量:4927 次
发布时间:2019-06-11

本文共 1084 字,大约阅读时间需要 3 分钟。

有时候,二维数组开不了那么大,动态的构建邻接表容易出错,此时需要借助静态邻接表。

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 const long edge_maxn = 1005; //边的最大上限 7 const long point_maxn = 105; //点的最大上限 8 struct node 9 {
/*node存储边,一个edge代表一条边*/10 int v; //终点位置11 int w; //权值12 int next; //同一起点的下一条边存储在edge数组中的位置(理解了这个静态邻接表就可以了)13 }edge[edge_maxn];14 int pre[point_maxn]; //以该点为起点的第一条边存储在edge数组中的位置15 int n; //点的数量16 int m; //边的数量17 void Init()18 {19 memset(pre,-1,sizeof(pre));20 int Index = 1;21 int i,x,y,w;22 for(i=0;i
%d value is %d ",edge[j].v,edge[j].w);40 }41 printf("\n");42 }43 }44 int main()45 {46 while(scanf("%d%d",&n,&m)!=EOF && (n!=0 || m!=0))47 {48 Init();49 print();50 }51 return 0;52 }
View Code

静态邻接表关键是next与pre数组的构造。让我想起了关于kmp,next数组的构造,树状数组,dijkstr借东风的构造。这些构造都相互链接,互相关联,变化万千奇妙无穷啊!!!(话说,树状数组又忘了,qwq).

转载于:https://www.cnblogs.com/ZQUACM-875180305/p/8626707.html

你可能感兴趣的文章
论如何知道一个人近年来关注了啥
查看>>
link
查看>>
[翻译]Writing Custom Report Components 编写自定义报表组件
查看>>
20172311 《程序设计与数据结构》第四周学习总结
查看>>
JS中的let变量
查看>>
[ZZ]Ubuntu<-->Windows 远程桌面连接(debian等同)
查看>>
UVa 3602 - DNA Consensus String 水题 难度: 0
查看>>
6-5-树的双亲表示法-树和二叉树-第6章-《数据结构》课本源码-严蔚敏吴伟民版...
查看>>
删除Excel中的打印预览留下的打印线
查看>>
Python根据上下限生成不重复随机数
查看>>
Linux常用命令集
查看>>
验证码 60秒后重新发送
查看>>
JAVA上百实例源码网站
查看>>
AngularJs之ng-repeat的用法
查看>>
转载文件,英语学习
查看>>
Linux系统编程:进程控制
查看>>
leetcode Word Search
查看>>
微服务架构设计
查看>>
有关iOS热更新
查看>>
隐藏17年的Office远程代码执行漏洞(CVE-2017-11882)
查看>>