Создать списки, в информационном поле которых содержится указатель на следующее слово - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Есть четыре слова: "Утро" "Вечер" "Окунь" "Рыба". Нужно создать списки, в информационном поле которых содержится указатель на следующее слово. Причем последняя буква каждого слова должна совпадать с первой буквой следующего. Т.е. "Утро" и "Окунь" должны быть в одном списке, а "Вечер" и "Рыба" - в другом. Нужна ли тут структура в структуре?
struct Lists
{
    struct Lists *Wordlist; //указатель на список слов
    struct Lists *next; //указатель на следующий список слов
};
struct Wordlist
{
    char Word[20];
    struct Worldlist *next;
};
Или достаточно:
struct Wordlist
{
    char Word[20]; //под слово
    struct Worldlist *next; //указатель на следующее слово
};
Как лучше реализовать такую задачу?

Решение задачи: «Создать списки, в информационном поле которых содержится указатель на следующее слово»

textual
Листинг программы
#ifndef LIST_H
#define LIST_H 1
 
typedef struct NODE {
    void * data;
    struct NODE * next;
} node_t;
 
extern node_t * new_node(void * data);
extern node_t * del_node(node_t * node);
 
typedef struct LIST {
    node_t * first;
    node_t * last;
} list_t;
 
extern list_t * new_list(void);
extern int push_data(list_t * list, void * data);
extern void for_each(list_t * list, void (*func)(void *));
extern void del_list(list_t * list);
 
#endif /* LIST_H */

Объяснение кода листинга программы

  1. Создание нового узла с данными и следующим узлом
  2. Удаление узла из списка
  3. Объявление структуры списка
  4. Создание нового списка
  5. Добавление данных в список
  6. Обход каждого элемента списка с помощью функции
  7. Удаление списка

Оцени полезность:

15   голосов , оценка 3.733 из 5
Похожие ответы