(数据结构)实现递归的二分查找算法。

it2025-10-22  9

#include <stdio.h> #include <stdlib.h> #define DATATYPE char #define NULL '\0' typedef struct node { DATATYPE data; struct node *lchild,*rchild; }BTLINK; BTLINK *creat() { BTLINK *q; BTLINK *s[30]; int j,i; char x; printf("i,x="); scanf("%d,%c",&i,&x); while(i!=0&&x!='$') { q=(BTLINK *)malloc(sizeof(BTLINK)); q->data=x; q->lchild=NULL; q->rchild=NULL; s[i]=q; if(i!=1) { j=i/2; if(i%2==0) s[j]->lchild=q; else s[j]->rchild=q; } printf("i,x="); scanf("%d,%c",&i,&x); } return s[1]; } void digui(BTLINK *bt) { if(bt!= NULL) { digui(bt->lchild); printf("%c",bt->data); digui(bt->rchild); } } main() { BTLINK *bt; bt=creat(); digui(bt); }
最新回复(0)