Создать односвязный список из структур - 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(), которая ожидает нажатия клавиши.