2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Удаление элемента из односвязного списка c++
Сообщение15.04.2020, 18:48 
Добрый день. Писал на паре код в феврале, а сейчас уже всё подзабыл. Помогите написать функцию с удалением 3 его элемента в односвязном списке, желательно с пояснениями, заранее спасибо.

Код:
#include <iostream>;
#include <conio.h>;
#include <stdio.h>
#include <tchar.h>


using namespace std;

int n;

struct Data
{
   int a;
};

struct Node
{
   Data d;
   Node* next;
};

void Print(Node* head)
{
   cout << "\n\t List << " << endl;
   while (head)
   {
      cout << head->d.a << ' ';
      head = head->next;
   }
   cout << "NULL" << endl;
}
void Print1(Node* head)
{
   cout << "\n \t New List <<" << endl;
   while (head)
   {
      cout << head->d.a << ' ';
      head = head->next;
   }
   cout << "NULL" << endl;
}

void Add_end(Node* head, Data x)
{
   Node* q = new Node;
   q->d.a = x.a;
   Node* t = head;
   while (t->next) t = t->next;
   t->next = q;
   q->next = NULL;
}

void Init_List(Node*& head, Data& d)
{
   cout << "Enter the number of elements in List ->" << ' ';
   cin >> n;
   cout << "\nEnter" << ' ' << 1 << ' ' << "elements ->" << ' ';
   head = new Node;
   cin >> head->d.a;
   head->next = NULL;
   for (int i = 2; i <= n; i++)
   {
      cout << "Enter" << ' ' << i << ' ' << "elements ->" << ' ';
      cin >> d.a;
      Add_end(head, d);
   }
   cout << endl;
   Print(head);
}

void Delete(Node* &head, Data &k)
{
   cout << "Delete third element ? (y/n) ";
   cin >> k.a;
   Node* t = head;
   if (t->d.a == k.a)
   {
      head = head->next->next;
      delete t;
      Print1(head);
   }
}


int _tmain(int argc, _TCHAR* argv[])
{
   Node* head; Data d;
   Init_List(head, d);

   Delete(head, d);

   _getch();
   return 0;
}

 
 
 
 Posted automatically
Сообщение15.04.2020, 19:19 
 i  Тема перемещена из форума «Программирование» в форум «Карантин»
по следующим причинам:

- оформите код с использованием тэга подсветки синтаксиса (и допишите к нему комментари);
- предложите собственные содержательные попытки решения задачи.

Исправьте все Ваши ошибки и сообщите об этом в теме Сообщение в карантине исправлено.
Настоятельно рекомендуется ознакомиться с темами Что такое карантин и что нужно делать, чтобы там оказаться и Правила научного форума.

 
 
 [ Сообщений: 2 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group