java学习15

83 阅读2分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

十字链表

思路整理

(1)十字链表的数据结构:

由弧节点和顶点节点组成。其中每个节点的含义一定要清楚,不然很容易就晕了(如下图)

image.png 手动模拟十字链表

在知道了数据结构后手动模拟画出十字链表(十字链表我觉得画都很麻烦,所以一定要先弄懂他是怎么画的再去理解代码可能会更好些)其中起点和弧尾是相同表达意思,终点和弧头是相同表达意思

image.png 先画出度

先将每个顶点的firstOut指向以该顶点为弧尾的第一个节点(如a节点,以a节点为弧尾的有b和c,其中a节点的fisrtOut指向以a为起点b为终点的弧节点),而在指向弧节点的4个域中,第4个域tlink,指的是链接弧尾相同的顶点(以a为弧尾b为弧头的弧节点的第4个域指向以a为弧尾c为弧头的弧节点),所以就有如下图:

image.png 再画入度

上面只画出了弧尾的指向,现在画弧头的指向,画法和上面画弧尾指向类似。每个顶点的firstIn指向以该顶点为弧头的第一个节点(如a节点,以a节点为弧头的有c,d, 其中a节点的firstOut指向以c为起点a为终点的弧节点)而在指向弧节点的4个域中,第3个域hlink,指的是链接弧头相同的顶点(以c为弧尾a为弧头的弧节点的第3个域指向以d为弧尾a为弧头的弧节点)

image.png

(1)java之数组引用

int[] a = new int[10];
int[] b;
b = a;
b[0] = 1;
b[1] = 2;
b[3] = 3;
System.out.println("a数组引用地址 " + a);
System.out.println("a数组引用地址 " + b);

打印输出:

a数组引用地址 [I@3339ad8e
a数组引用地址 [I@3339ad8e