Bir kod yapıp, Ekle işlevi düğümündeki bir Düğüm Ağacı değerine T * insertT (nodeT ** pp, int iValue) değerlerini yazdım. Değerler sırasının önemi olmadan, İşlevim, değerleri ağaçtan çıkarmak, kopyaları önlemek ve düzgün yazdırmaktır. Ben girdi değerleri sipariş değilkenİkili ağaç kodu düzgün çalışmayacak
Insert Values for Binary Tree(-1 to stop)4 6 8 10 12 14 16 -1
The contents of the tree are:
4 6 8 10 12 14 16
Input a number whitin the range of the tree to receive the kth Smallest
5
the smallest 5th element is: 12
count of node: 7
Ancak, fonksiyonlar CountNode ve KTH en küçük elemanı arzu çıkışını döndürmez. Dahası, İkili Ağacın görüntüsü doğrudur. Örnek
Insert Values for Binary Tree(-1 to stop)10 14 6 8 12 4 16 -1
The contents of the tree are:
4 6 8 10 12 14 16
Input a number whitin the range of the tree to receive the kth Smallest
5
the smallest 5th element is: 0
count of node: 3
için aşağıdaki fonksiyonları, kesici uç kullanılan
nodeT *insertT(nodeT **pp, int iValue)
{
if(*pp == NULL)
{
*pp = allocateNodeT(iValue);
return *pp;
}
if(iValue == (*pp)->iValue)
{
return *pp;
}
if(iValue < (*pp)->iValue)
{
return insertT(&(*pp)->pLeft, iValue);
}
else //(iValue > (*pp)->iValue)
{
return insertT(&(*pp)->pRight, iValue);
}
}
int k_smallest(nodeT *pRoot, int iKey)
{
int iSave;
if(pRoot)
{
nodeT* pTraverse;
pTraverse =pRoot;
while(pTraverse)
{
if((pTraverse->iCount +1) == iKey)
{
iSave = pTraverse->iValue;
break;
}
else if(iKey > pTraverse->iCount)
{
iKey = iKey-(pTraverse->iCount +1);
pTraverse = pTraverse->pRight;
}
else
{
pTraverse = pTraverse->pLeft;
}
}
}
return iSave;
}
Bize ikili ağaç ve düğümlerin kodunu göstermeniz mümkün mü? – jrhee17
@ jrhee17 –