C Упражнения: вставьте узел в конец кругового связного списка

Связанный список C: Упражнение-24 с решением

Напишите программу на C, чтобы вставить узел в конец кругового связного списка.

Наглядное представление:

Пример решения:

Код C:

  #include  #include  struct node {int num;  struct node * nextptr;} * stnode; struct node * tail, * p, * q, * хранить;  void ClListcreation (int n); void ClLinsertNodeAtEnd (int num); void displayClList (int a); int main () {int n, num1, a, insPlc;  stnode = NULL; printf (" n  n Циклический связанный список: вставьте узел в конец кругового связанного списка:  n"); printf ("---------------  --------------------------------------------------  ---------------  n ");  printf ("Введите количество узлов:");  scanf ("% d", & n);  ClListcreation (n);  а = 1;  displayClList (а);  printf ("Введите данные для вставки:");  scanf ("% d", & num1);  ClLinsertNodeAtEnd (число1);  а = 2;  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 ClLinsertNodeAtEnd (int num1) {int a; a = num1; struct node * temp = (struct node *) malloc (sizeof (  struct node)); temp-> num = a; p = stnode; while (p-> nextptr! = stnode) {p = p-> nextptr;} p-> nextptr = temp; temp-> nextptr = stnode;}  void displayClList (int m) {struct node * tmp; int n = 1; if (stnode == NULL) {printf ("В списке пока нет данных. ");} else {tmp = stnode; if (m == 1) {printf ("  n Данные, введенные в список:  n ");} else {printf ("  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 Введите данные для вставки: 9 После вставки новый список: Данные 1 = 2 Данные 2 = 5 Данные 3 = 8 Данные 4 = 9  

Блок-схема:

ClListcreation ():

ClLinsertNodeAtEnd ():

displayClList ():

Редактор кода программирования на C:

Оцените статью
nanomode.ru
Добавить комментарий