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