Мне нужна помощь с реализацией логической части prev указателя в двусвязном списке.
По сути, я нахожусь в процессе создания связанного списка, который в данный момент является односвязным. Я добавил необходимый структурный узел * prev; к моей структуре, так что я могу иметь как следующие указатели, так и предыдущие указатели в каждом узле в списке. Но теперь я врезался в стену и действительно не знаю, как реализовать указатель * prev в моем коде.
Я не ищу точных решений, просто толчок в правильном направлении.
typedef struct L {
char val;
struct L *next;
struct L *prev;
} List;
List *insertList(char val, List *t1 );
List *createList(void);
int main(void) {
List *z = createList();
while ( z != NULL ) {
printf("%c", z->val);
z = z->next;
}
return 0;
}
List *createList(void) {
List *h = NULL;
char c;
do {
c =(char)getchar();
h = insertList(c, h);
}while(c != '.');
return h;
}
List *insertList( char val, List *t1) {
List *t = calloc(1, sizeof( List ));
t->val = val;
t->next = t1;
return t;
}