Связанный список C: Упражнение 11 с решением
Напишите программу на C для создания и отображения двусвязного списка.
Наглядное представление:
Пример решения:
Код C:
#include #include struct node {int num; struct node * preptr; struct node * nextptr;} * stnode, * ennode; void DlListcreation (int n); void displayDlList (); int main () {int n; stnode = NULL; ennode = NULL; printf (" n n Двусвязный список: создание и отображение двусвязного списка: n"); printf ("------------------- ------------------------------------------------ n "); printf ("Введите количество узлов:"); scanf ("% d", & n); DlListcreation (n); displayDlList (); return 0;} void DlListcreation (int n) {int i, num; struct node * fnNode; если (n> = 1) {stnode = (struct node *) malloc (sizeof (struct node)); if (stnode! = NULL) {printf ("Входные данные для узла 1:"); //присвоение данных в первом узле scanf ("% d", & num); stnode-> число = число; stnode-> preptr = NULL; stnode-> nextptr = NULL; ennode = stnode;//помещаем данные для остальных узлов for (i = 2; inum = num; fnNode-> preptr = ennode;//новый узел связывается с предыдущим узлом fnNode-> nextptr = NULL; ennode-> nextptr = fnNode;//предыдущий узел связывается с новым узлом ennode = fnNode;//назначает новый узел последним узлом} else {printf ("Невозможно выделить память."); break;}}} else {printf ( "Невозможно выделить память.");}}} Void displayDlList () {struct node * tmp; int n = 1; if (stnode == NULL) {printf ("Данные в списке еще не найдены. ");} else {tmp = stnode; printf (" n n Данные, введенные в список: n "); while (tmp! = NULL) {printf (" node% d:% d n ", n, tmp-> num); n ++; tmp = tmp-> nextptr;//текущий указатель перемещается на следующий узел}}}
Пример вывода:
Двусвязный список: создание и отображение двусвязного списка: ---------------------------------- --------------------------------- Введите количество узлов: 3 Входные данные для узла 1: 2 Входные данные для узел 2: 5 Входные данные для узла 3: 8 В список внесены следующие данные: узел 1: 2 узел 2: 5 узел 3: 8
Блок-схема:
DlListcreation ():
displayDlList ():
Редактор кода программирования на C: