Я пытаюсь реализовать адаптивный код хаффмана, но при попытке построить дерево я получаю ошибку сегментации при выполнении кода в строке «currentNYT-> lchild = newNYT;» в функции addnode().Ошибка сегментации - Adaptive Huffman Tree
Может ли кто-нибудь помочь мне? Это может быть что-то простое, о котором я не знаю. не использовал C некоторое время.
//variable and type declarations
struct treeElement {
unsigned long weight;
unsigned short id;
char chr;
struct treeElement *lchild, *rchild, *parent;
};
typedef struct treeElement node;
node *root, *currentNYT;
//functions
void initTree() {
root = NULL;
currentNYT = malloc(sizeof(node));
currentNYT = root;
} //initTree
void addNode(char newNodeChr) {
node *newNYT, *newExternal;
newNYT = malloc(sizeof(node));
newNYT->id=maxNodes-idCount; idCount++;
newNYT->chr='\0';
newNYT->weight=0;
newNYT->parent=currentNYT;
newNYT->lchild=newNYT->rchild=NULL;
newExternal = malloc(sizeof(node));
newExternal->id=maxNodes-idCount;
newExternal->chr=newNodeChr;
newExternal->weight=1;
newExternal->parent=currentNYT;
newExternal->lchild=newExternal->rchild=NULL;
currentNYT->lchild = newNYT;
currentNYT->rchild = newExternal;
currentNYT=newNYT;
} //addNode
Возможно, вам лучше всего перенаправить на новый вопрос. – caf