Создать односвязный список из структур - C (СИ)
Формулировка задачи:
Помогите пожалуйста..Сколько читаю ничего не понимаю(Большинство с классами...которые мы не изучали.
Понимаю что должно быть значение и указатель на следующий элемент.
Создаем структуру
Как сформулировать всё дальше(надеюсь на помощь.
struct node { int value; node *next; }
Решение задачи: «Создать односвязный список из структур»
textual
Листинг программы
#include "stdafx.h" #include <conio.h> #include "iostream" #include <time.h> using namespace std; struct node { int value; node *next; }; void main (void) { int a; int n; srand(time(NULL)); cin>>a; cin>>n; cout<<endl; node* head; head= new node; head ->value=5; node* tmp; node* tmp1; tmp=head; for(int i=0 ;i<a;i++) { tmp1=new node; tmp1->value=rand()%10; tmp->next=tmp1; tmp1->next=NULL; tmp=tmp1; } cout<<"Поидем дальше вывод..."; for(tmp1=head;tmp1!=NULL;tmp1=tmp1->next) cout<<tmp1->value<<" "; cout<<endl; node*temp=head;//Удаляем первый элемент head = head->next; delete temp; for (tmp1=head; tmp1!=NULL;tmp1=tmp1->next) if (tmp1->value!=n) delete tmp1; for(tmp1=head;tmp1!=NULL;tmp1=tmp1->next) cout<<tmp1->value<<" "; getch(); }
Объяснение кода листинга программы
В этом коде создается односвязный список из структур, представленный в виде узлов. Каждый узел содержит целочисленное значение и указатель на следующий узел.
- Структура
node
объявляется для представления отдельного узла в списке. - В функции
main
инициализируются переменныеa
иn
, а затем вызывается функцияsrand(time(NULL))
для инициализации генератора случайных чисел. - Создается первый узел списка, и его значение устанавливается равным 5.
- В цикле
for
создается несколько новых узлов, и их значения и указатели на следующий узел устанавливаются с использованием генератора случайных чисел. - Выполняется два цикла
for
, в которых выводятся значения всех узлов списка. - Удаляется первый элемент списка, и указатель на голову списка обновляется, чтобы указывать на новый первый элемент.
- В цикле
for
ищется узел с указанным значениемn
и удаляется. - Выполняется еще один цикл
for
, в котором выводятся значения всех оставшихся узлов списка. - Программа завершается вызовом функции
getch()
, которая ожидает нажатия клавиши.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д