Линейный однородный список(ЛОС)

Тема в разделе "WASM.BEGINNERS", создана пользователем Luna, 9 май 2010.

  1. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    Программа обработки картотеки магазинов (№, адрес, тип магазина) имеет структуру ЛОС.
    Как вставить элемент в ЛОС?
    И как вывести картотеку на принтер?

    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<fstream.h>
    #define n 3

    class shop
    {char adres[80];
    char tip[80];
    char str[20];
    int nomer;
    int b;
    shop *next;
    public:
    static shop *p;
    void create();
    void search();
    void add();
    void cut();
    void output();

    };

    shop*shop::p;

    void shop::create()
    {shop *q;
    p=new shop;
    cin>>p->b;
    gets(p->str);
    q=p;
    for(int i=0;i<n-1;i++)
    {q->next=new shop;
    q=q->next;
    cin>>q->b;
    gets(q->str);
    }
    q->next=NULL;
    getch();
    }





    void shop::output()
    {shop *q;
    q=p;
    while (q!=NULL)
    {cout<<q->b<<"\n";
    cout<<q->str<<"\n";
    q=q->next;
    }
    getch();
    }


    void shop::search()
    {shop *q;
    int key;
    cout<<"enter key \n";
    cin>>key;
    q=p;
    while(q!=NULL&&q->b<key)
    q=q->next;
    if(q!=NULL&&q->b==key )
    {cout<<q->b;
    cout<<"\n";
    cout<<q->str<<"\n";
    }

    else
    cout<<"the element is not found \n";
    getch();
    }



    void main()
    {shop ob;
    ob.create();
    ob.output();
    ob.search();
    getch();

    }
     
  2. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Luna
    тебе уже в соседнем топике ремня дали за не использоване тега code
     
  3. wsd

    wsd New Member

    Публикаций:
    0
    Регистрация:
    8 авг 2007
    Сообщения:
    2.824
    Luna
    под этим понимается однонаправленный или двунаправленный?
     
  4. Mankubus

    Mankubus New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2009
    Сообщения:
    76
    wsd, ну тут однонаправленный.

    Luna, вставить надо упорядоченно или нет? Если просто добавить элемент в конец списка, то вот:
    Код (Text):
    1. typedef struct listitem{
    2.     int data;
    3.     struct listitem* next;
    4. } List;
    5.  
    6. void list_add(List * spis, int value)
    7. {
    8.     List * temp_list=(List *)calloc(1,sizeof(List));
    9.    
    10.     while (spis->next!=NULL){
    11.         spis=spis->next;
    12.     }
    13.    
    14.     temp_list->data = value;   
    15.     temp_list->next = NULL;
    16.     spis->next = temp_list;
    17.  
    18.     return;
    19. }
    Sorry, код на С, так как на плюсах не программирую. Ну разницы существенной нет.
     
  5. Mankubus

    Mankubus New Member

    Публикаций:
    0
    Регистрация:
    14 авг 2009
    Сообщения:
    76
    Странно, не помню такого определения. Однородный граф - да, а список... Ну может быть и забыл уже, конечно.
     
  6. f1redArk

    f1redArk Member

    Публикаций:
    0
    Регистрация:
    10 июл 2008
    Сообщения:
    34
    Всё верно, такого понятия не существует, девушка придумала его сама)
     
  7. Luna

    Luna New Member

    Публикаций:
    0
    Регистрация:
    7 ноя 2009
    Сообщения:
    288
    f1redArk
    да ладно вам -придумалаж у меня в этой сфере нет такой богатой фантазии)однонаправленный список
    Mankubus
    Красота...непонятная..А для чего "calloc"?

    Хорошо, а если задача не на тему ЛОС, а на тему "методы , поля и классы",...то там как новый элемент добавить (ну, например- добавить новое имя и номер в справочник)?
    У меня-то получается, что я ввожу это новое имя и номер и опять печатаю справочник...А надо, чтобы все изменения отражались на единственном введённом справочнике