[off]офтоп особенно[/off]заколебало меня всё
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
struct TList
  {
   int data;
   struct TList *next,*prew;
  };
typedef struct TList ttlist;
ttlist *head, *work1, *work2, *work3;
void print_list()
  {
  cout << "******************************\n";
  cout << "Сейчас в листе: \n";
  work1 = head;
  while (work1->next != NULL)
	 {
	 cout << "   число: " << work1->data << "\n";
	 work1 = work1->next;
	 }
  cout << "   число: " << work1->data << "\n";
  cout << "******************************\n";
  }
//////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void ins_member(int data)
  {
  work1 = head;
  if (work1->data > data)
    {
    work2 = (ttlist *)malloc (sizeof(ttlist));
    if (work2 == NULL)
       {
       cout << "Hет памяти \n Программе крышка...\n";
       exit(1);
       }
    work2->prew = NULL;
    work2->next = head;
    head->prew = work2;
    head = work2;
    head->data = data;
    cout << "Данные вставленны...\n\n";
    }
  else
    {
    while ((work1->data < data) && (work1->next != NULL))
      work1 = work1->next;
    if (work1->data > data)
      {
      work2 = work1->prew;
      work3 = (ttlist *)malloc (sizeof(ttlist));
      if (work3 == NULL)
	 {
	 cout << "Hет памяти \n Программе крышка...\n";
	 exit(1);
	 }
      work3->data = data;
      work2->next = work3;
      work3->prew = work2;
      work1->prew = work3;
      work3->next = work1;
      cout << "!..\n\n";
      }
    else
      {
      work2 = (ttlist *)malloc (sizeof(ttlist));
      if (work2 == NULL)
	 {
	 cout << "Hет памяти \n Программе крышка...\n";
	 exit(1);
	 }
      work2->data = data;
      work1->next = work2;
      work2->prew = work1;
      work2->next = NULL;
      cout << "Данные вставленны...\n\n";
      }
    }
  }
//////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
int del_member(int data)
  {
  int err = -1;
  work1 = head;
  if (work1->data == data)
    {
    head = work1->next;
    head->prew = NULL;
    free(work1);
    err = 0;
    }
  else
    {
    while ((work1->data != data) && (work1->next != NULL))
      work1 = work1->next;
    if (work1->next != NULL)
      {
      work2 = work1->prew;
      work3 = work1->next;
      work2->next = work3;
      work3->prew = work2;
      free(work1);
      err = 0;
      }
    else if (work1->data == data)
	   {
	   work2 = work1->prew;
	   work2->next = NULL;
	   free(work1);
	   err = 0;
	   }
    }
  return(err);
  }
//////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void create_list()
  {
  head = (ttlist *)malloc (sizeof(ttlist));
  if (head == NULL)
    {
    cout << "Hет памяти \n Программе крышка...\n";
    exit(1);
    }
  head->next = NULL;
  head->prew = NULL;
  }
//////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
int cmpstr(char *str1, char *str2)
  {
  int i = 0;
  while ((str1[i] == str2[i]) && (str1[i] != 0) && (str2[i] != 0)) i++;
  if ((str1[i] == 0) && (str2[i] == 0)) return(1);
  else return(0);
  }
//////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//////////////////////////////////*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
void main()
  {
  cout << "Добавить новую переменную         'i <data>',\n";
  cout << "Удалить переменную                'd <data>',\n";
  cout << "Посмотреть список                 'v',\n";
  cout << "Выход из программы                'e'.\n\n";
  int i;
  create_list();
  cout << "Введите начальные данные: ";
  cin >> i;
  head->data = i;
  cout << "Список создан!!!...\n\n\n";
  int param;
  char command[4] = "";
  while (!cmpstr(command,"e"))
    {
    cout << "Введите команду: ";
    cin >> command;
    if (cmpstr(command,"i"))
      {
      cin >> param;
      ins_member(param);
      }
    else if (cmpstr(command,"d"))
	   {
	   cin >> param;
	   if (head->next != NULL)
	     {
	     if (del_member(param) == 0) cout << "Данные удалены...\n\n";
	     else cout << "Hе могу удалить!..\nHет такого у меня...\n\n";
	     }
	   else cout << "Hе могу удалить!..\nДолжен остаться хоть один (c) Дунька Маклауд..\n\n";
	   }
	 else if (cmpstr(command,"v")) print_list();
	      else if (!cmpstr(command,"e"))
		     {
		     cout << "Hеправильная команда!...\n\n";
		     cout << "Добавить новую переменную         'i <data>',\n";
		     cout << "Удалить переменную                'd <data>',\n";
		     cout << "Посмотреть историю                'v',\n";
		     cout << "Выход из программы                'e'.\n\n";
		     }
    }
  }
 
   
 
















