Написать программу, которая создает двусвязный список или произвести ликбез по данной теме - C (СИ)
Формулировка задачи:
Ребят, кто может написать программу, которая создает двусвязный список или произвести ликбез по данной теме. У самого ничего не выходит. Не могу понять программы найденные в интернете. Так почему то все написано без функции malloc.
Решение задачи: «Написать программу, которая создает двусвязный список или произвести ликбез по данной теме»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
typedef struct node_t {
int value;
struct node_t* next;
struct node_t* prev;
} TNode;
typedef struct list_t {
TNode* head;
TNode* tail;
} TList;
//-----------------------------------------------------------------------------
void PushBack(TList* list, int value) {
TNode* node = malloc(sizeof(TNode));
node->value = value;
node->next = NULL;
node->prev = list->tail;
if (list->head && list->tail) {
list->tail->next = node;
list->tail = node;
}
else {
list->head = list->tail = node;
}
}
//-----------------------------------------------------------------------------
void Print(const TList* list) {
const TNode* node = list->head;
for (; node; node = node->next) {
printf("%d ", node->value);
}
printf("\n");
}
//-----------------------------------------------------------------------------
int main() {
TList list = {NULL, NULL};
int i = 10;
while (i--) {
PushBack(&list, i + 1);
}
Print(&list);
return 0;
}