在下列程序中,insert、creat、inorder函数的作用分别是什么,程序如下:#include<iostream> using namespace std; typedef int KeyType; typedef struct { KeyType key; } ElemType; typedef struct BitNode { ElemType data; struct BitNode* lchild, * rchild; }BitNode, * BiTree; BiTree insert(BiTree b, BiTree s) { if (b == NULL) b = s; else if (s->data.key > b->data.key) b->rchild = insert(b->rchild, s); else if (s->data.key < b->data.key) b->lchild = insert(b->lchild, s); return b; } BiTree creat() { int k; BiTree t, s; t = NULL; scanf_s("%d", &k); while (k != -1) { s = (BiTree)malloc(sizeof(BitNode)); s->data.key = k; s->lchild = NULL; s->rchild = NULL; t = insert(t, s); scanf_s("%d", &k); } return t; } void inorder(BiTree t) { if (t) { inorder(t->lchild); printf_s("%3d", t->data); inorder(t->rchild); } } void main() { BiTree t; printf_s("输入数据,以-1结尾:"); t = creat(); printf_s("顺序为:"); inorder(t); }
时间: 2024-04-26 16:21:55 浏览: 87
C++利用函数动态创建二维数组
5星 · 资源好评率100%
这段程序是实现二叉排序树的建立和中序遍历。具体来说,insert函数是用来将新节点插入到二叉排序树中的,它的参数b代表二叉排序树的根节点,参数s代表要插入的新节点;creat函数是用来创建二叉排序树的,它会调用insert函数将每个输入的数值插入到二叉排序树中,并返回建立好的二叉排序树的根节点;inorder函数是用来实现中序遍历的,它的参数t代表要遍历的二叉排序树的根节点。整个程序的主函数main只是调用了creat函数和inorder函数,用来测试建立和遍历二叉排序树的结果。
阅读全文