c语言中的树是什么意思,集合又怎么跟编程有关

Python023

c语言中的树是什么意思,集合又怎么跟编程有关,第1张

树就是相当于图,里面有很多个 顶点 很多个边 边连接顶点 。

编程可以和任何你能想象出来的东西有关,集合在数据结构里面关系比较大,比如结构体就是一个集合。

堆是一种数据结构,常用于堆排序算法。

对于你的这种情况我觉得比较适合用数组来实现。对于长度为t的输入,申请类型为Node、长度为t的数组nodeArray[t],然后进行两次遍历。第一次,nodeArray[i].data对应输入的第i个字符,nodeArray[i].lchild和rchild都为空;(如果输入#则nodeArray[i]=null)第二次,在[0,n-1]的范围内,令nodeArray[i].lchild=&(nodeArray[i*2]),nodeArray[i].rchild=&(nodeArray[i*2+1])。完成后,nodeArray[0]即为所求二叉树。应该有法一次遍历就构造好这棵树,懒得想了。

//将你二叉树中的数据放入链表

typedef struct node {//这可能是一个单向链表 

DateType data;

Struct node * next;

}ListNode;

typedef ListNode * LinkList ;

LinkList Leafhead=NULL;//创键链表 

Void Inorder (BinTree T)

{

LinkList s;

If(T){//T不能空时。 

Inorder(T->lchild);//递归左孩子 

If ((!T->lchild)&&(!T->rchild)){//当左右孩子都为空时。将里面的数据放入链表! 

s=(ListNode*)malloc(sizeof(ListNode));

s->data=T->data;//将所有的数据放入链表中 

s->next=Leafhead;

Leafhead=s;

}

Inorder(T->rchild);// 递归右孩子 

}

}