2014-09-11 2 views
-4
typedef struct list_item { 
    char *value; 
    struct list_item *next; 
    struct lst_item *prev; 
} list_item_t; 

typedef struct single_list { 
    list_item_t *head; 
    list_item_t *tail; 
} slist_t; 

void init(slist_t *list); 
void add(slist_t *list, int value); 

Этот код находится в файле заголовка. Мне нужно реализовать двусвязный список. В настоящее время я работаю над функцией init, и у меня возникают проблемы с пониманием двух структурных частей кода typedef. Может кто-нибудь дать мне объяснение, что именно они делают, пожалуйста. ThanksОбъясните этот код C мне, пожалуйста,

+1

list_item представляет каждый узел в списке со ссылками на предыдущий и следующий узлы. single_list представляет сам список (например, значение узла), со ссылкой на первый и последний узлы. – user2864740

+0

«дайте мне объяснение, что именно они делают», точную часть сложно сделать с такой скудной информацией. Предложите опубликовать то, что _you_ думает, что это так, и SO с радостью поможет вам. – chux

ответ

0

struct ключевое слово позволяет хранить данные нескольких типов, это структура. В этой структуре вы можете найти два указателя одного и того же типа данных, что делает структуру link list. Теперь вы можете иметь несколько char *value in list_item, которые связаны друг с другом. Ключевое слово typedef позволяет объявить структуру list_item с именем переменной, которое вы установили в конце, в этом случае list_item_t.

пример декларации: list_item_t my_list;

вместо: stuct list_item my_list;

single_list используется для доступа к структуре list_item легко путем доступа либо первый элемент или последний.

Затем вы вызываете две функции, которые вы нам пока не показывали, но я предполагаю по их именам, что первый создает весь этот список, а второй позволяет добавить элемент в список.

0

list_item создает элемент в списке. Я имею в виду один узел в списке. Но single_list Создает список. Он содержит много элементов списка в одном узле. и у вас может быть много списков. (Вы можете создать много списков, используя single_list, и вы можете добавить много элементов в эти списки с помощью list_items)

Смежные вопросы