树和图的存储方式是用链表来实现。
一般较常使用的单链表和邻接矩阵
由于目前只学了单链表就只叙述下单链表的实现
单链表:(这里使用数组模拟的方式)
单链表实现树和图的储存即开一个几个数组:e[i](储存当前节点的数值)h[i](储存每个节点的数值的头指针)ne[i](储存每个节点指向的下一个节点)
1 void add_to_head(int a)//头结点插入一个a
2 {
3 e[idx]=a;//使当前节点的值为a
4 ne[idx]=head;//使当前节点指向头结点指向的下标
5 head=idx++;//头结点指向该节点并且节点数增加
6 }
每个节点的链表里的存储循序我们并不关心,因此我们只需在头指针的后面插入即可。
例如
单链表的储存即
1 h[1]->5->3->2->-1;
2 h[2]->8->-1;
3 h[3]->7->6->-1;