Я пытаюсь перевести некоторый текст в азбуку Морзе .Когда я посылаю одно письмо для работы, оно работает правильно, но я хочу, чтобы оно написало слово, поэтому я пытаюсь посылать слова одно за другим с указателем указателя, но этого не происходит, помогите.
древовидная структура:
typedef struct tree
{
char *letter;
char *morscode;
struct tree *left;
struct tree *right;
} tree;
Функции:
tree *root=NULL;
void add (char* letter, char* morscode) {
if (root == NULL) {
root = (tree *)malloc(sizeof(tree));
root->letter = letter;
root->morscode = morscode;
root->left = NULL;
root->right = NULL;
}
else
{
tree *new = (tree *)malloc(sizeof(tree));
new->letter = letter;
new->morscode = morscode;
new->left = NULL;
new->right = NULL;
tree *node = root,
*mom;
while (node != NULL) {
mom = node;
if (strcmp(letter, dugum->letter) == -1)
node = node->left;
else
node = node->right;
}
if (strcmp(letter, mom->letter) == -1)
mom->right = new;
else
mom->right = new;
}
}
tree *searchbyletter(char& letter, agac *node) {
if(strcmp(letter,node->letter) == -1)
searchbyletter(letter, node->left);
else if(strcmp(letter, node->letter) == 1)
searchbyletter(letter, node->right);
else
return node;
}
void write(char *letter) {
int x = strlen(letter),
i;
for(i = 0; i < x; i++) {
printf("%s", searchbyletter(letter[i], root)->morscode);
}
}
void preorder(tree *node) {
if (node != NULL) {
printf(" %s ", node->letter);
preorder(node->left);
preorder(node->right);
}
}
void inorder(tree *node) {
if (node != NULL) {
inorder(node->left);
printf(" %s ", node->letter);
inorder(node->right);
}
}
void postorder(tree *node) {
if (node!=NULL) {
postorder(node->left);
postorder(node->right);
printf(" %s ", node->letter);
}
}
main: [Я инициализировал азбуку Морзе и буквы вручную.]
void main() {
char* arr[27][2] = {
{" ", " "}, {"E", "."},
{"T", "-"}, {"I", ".."},
{"A", ".-"}, {"N", "-."},
{"M", "--"}, {"S", "..."},
{"U", "..-"}, {"R", ".-."},
{"W", ".--"}, {"D", "-.."},
{"K", "-.-"}, {"G", "--."},
{"O", "---"}, {"H", "...."},
{"V", "...-"}, {"F", "..-."},
{"L", ".-.."}, {"P", ".--."},
{"J", ".---"}, {"B", "-..."},
{"X", "-..-"}, {"C", "-.-."},
{"Y", "-.--"}, {"Z", "--.."},
{"Q", "--.-"}
};
int i, j;
for(i = 0; i < 27; i++) {
add(arr[i][0], arr[i][1]);
}
preorder(kok);
printf("\n");
inorder(kok);
printf("\n");
postorder(kok);
printf("\n");
write("HELLO WORLD");
}