Я просто хочу, чтобы addAlbum
в двоичном дереве поиска, но дерево будет построено в соответствии с годом выпуска. Я написал код, но он не работает ...Вставка двоичного дерева поиска
#include<stdio.h>
#include<stdlib.h>
typedef struct treeNode {
int releaseYear;
char singerName[50];
char albumTitle[50];
struct treeNode *left;
struct treeNode *right;
} treeNode;
treeNode *addAlbum(treeNode *node,int releaseYear,char singerName[50],char albumTitle[50]) {
if(node==NULL) {
treeNode *temp;
temp=(treeNode *)malloc(sizeof(treeNode));
temp -> releaseYear=releaseYear;
temp -> singerName[50]=singerName[50];
temp -> albumTitle[50]=albumTitle[50];
temp ->left = NULL;
temp ->right = NULL;
return temp;
}
if(releaseYear > (node -> releaseYear)) {
node ->right=addAlbum(node->right,releaseYear ,singerName,albumTitle);
}
else if(releaseYear<(node -> releaseYear)) {
node ->left=addAlbum(node->left,releaseYear, singerName,albumTitle);
}
else {
return node;
}
}
int main() {
treeNode *root;
int releaseYear;
char singerName[50];
char albumTitle[50];
root=addAlbum(root,1995,"a","d");
root=addAlbum(root,1998,"b","c");
printf("singers = s\n",singerName[50]);
printf("albumTitles = %c\n",albumTitle[50]);
printf("years = %d\n",releaseYear);
return 0;
}
Пожалуйста, узнайте, как использовать отладчик. –
... и скомпилировать с включенными предупреждениями ('-Wall' для компилятора). – Arkku
Разве вы не должны освобождать выделенное пространство в конце? – kero