Когда я ввожу число, скажем, 20 как data , размер также становится (число, которое в данном случае равно 20, +1). Введенные данные всегда назначаются на размер , почему?!
Заранее спасибо.
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
//#include <memory>
//#include <alloc.h>
typedef struct node{
struct node *right;
struct node *left;
int data;
}Node;
typedef struct tree{
Node* root;
int size;
}Tree;
void CreateTree(Tree *pt){
pt->root = NULL;
pt-> size = 0;
}
void AddNode(Tree *pt, int data){
Node *parent, *current = pt->root;
Node *pnew = (Node *)malloc(sizeof(Node));
pnew-> data = data;
pnew->right = NULL;
pnew->left = NULL;
pt->size++;
if(!current){
pt->root = pnew;
return;
}
while(current){
parent = current;
if(pnew->data > current->data)
current = current->right;
else
current = current->left;
}
if(pnew->data > parent->data)
parent->right = pnew;
else
parent->left = pnew;
}
int TreeSize(Tree *pt){
return pt->size;
}
int main(){
int data;
Tree *t;
CreateTree(&t);
printf("Enter the Element: ");
scanf("%d",&data);
AddNode(&t, data);
printf("The Tree has %d element(s).\n", TreeSize(&t));
getch();
return 0;
}
Размер должен быть увеличен на 1, только когда я вызываю AddNode (), не равный данным каждый раз.