на другой ответ на старый вопрос, и все равно ссылка была спрятана в моем буфере вставки.
вопрос звучит очень запутанно даже для меня, и может показаться очевидным или уже отвеченным, но я много искал и, хотя я нашел интересные вещи, я не нашел ответа именно на мой вопрос. Вот некоторыеC код, который покажет мои сомнения гораздо лучше:
typedef struct Node_struct {
char keyLine[100];
int occurrences;
struct Node* leftChild;
struct Node* rightChild;
struct Node* parent;
} Node;
typedef struct Tree_struct {
Node* root;
} Tree;
int insertNode(Tree* myTree, Node* newNode) {
...
Node* currentNode = myTree->root;
...
if (caseSenCmpString(newNode->keyLine, currentNode->keyLine) == -1) {
currentNode = (Node*)currentNode->leftChild;
}
...
}
Этот код правильный? посколькуcurrentNode
имеет типNode*
, а такжеcurrentNode->leftChild
имеет типstruct Node*
Я должен был бросить(Node*)currentNode->leftChild
чтобы его можно было присвоитьcurrentNode
, Но я не уверен, правильно ли это, необходимо или есть лучший способ сделать то же самое.
Точно так же у меня есть это:
Node* coverNode = NULL;
...
coverNode->leftChild = (struct Node*)newNode;