貌似没搞明白 指针 和 二级指针的概念。。。
你的代码我该了一下。你看看。
//输入示例: ab..c.d..
#includestdio.h>
#includemalloc.h>
#define DataType char
int LeafCount=0//统计叶子节点的数目
typedef struct Node//定义一个二叉树节点类型
{
DataType data
struct Node *LChild
struct Node *RChild
}BiTNode,*BiTree
//这在里单是BiTree bt 传指针是不对的,因为你在CreateBiTree 函数中更改了 bt 的指向,此刻的bt 和 传进来的 root 就没有联系了。。。所以建立的根本就不是二叉树。。你再想想看。。。
void CreateBiTree(BiTree *bt) //创建一个二叉树
{
char ch
ch=getchar()
printf(
#include<stdio.h>//二分查找法或折半查找法
void main(){
int a[10]={1,3,5,9,13,16,17,26,38},count=0//记录查找了多少次
//必须是有次的数组
int key,mid//要查找的数字和折半后的下标
int pos=-1//查找到的位置
int i=0,j=8
printf("请输入要查找的数据:")
scanf("%d",&key)
while(i<=j){
count++
mid=(i+j)/2
if(key==a[mid]){
pos=mid+1
break
}
if(key>a[mid])i=mid+1
else j=mid-1
}
if(pos==-1)
printf("对不起,没有找到你想要的数据!\n")
else
printf("该数据位于数组的第%d位\n共查找了%d次\n",pos,count)
}
删除
#include<stdio.h>
void main(){
int i,a[10]={1,3,4,5,7}
//下面看如何删除数组元素
//其实跟插入数据相反的道理
//比如删除a[1]这个元素,我们可以通过移动依次覆盖相应的位置
/*a[1]=a[2]
a[2]=a[3]
a[3]=a[4]*/
//这时候a[1]就已经被删除了
//把这段写成循环
for(i=1i<=3++i)
a[i] = a[i+1]
for(i=0i<4++i)
printf("%d ",a[i])
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)