笔记-静态二叉链表
静态二叉链表 不使用指针,而使用数组完成二叉树所有操作 结点左右指针域使用int代替,用来表示左右子树的根结点在数组中的下标 对指针的操作改为对数组下标的访问 struct node{ typename data; int lchild; //指向左子树的指针域 int rchild; //指向右子树的指针域 }Node[maxn]; int index = 0; int newNode(int v){ //分配一个Node数组中的结点给新的结点, index为其下标 Node[index].data = v; Node[index].lchild = -1; Node[index].rchild = -1; //-1和maxn表示空 因为数组范围是 0-maxn return index++; } 查找(root为根结点在数组中的下标) void search(int root, int x, int newdata){ if(root == -1){ return; //空树 死胡同 递归边界 } if(Node[root].data == x){ Node[root].data = newdata; } search(Node[root].lchild, x, newdata); //往左子树递归 search(Node[root].rchild, x, newdata);