1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Помогите разобратся со списком

Тема в разделе "С и С++", создана пользователем CppManiac, 28 май 2010.

  1. CppManiac

    CppManiac Гость

    Репутация:
    0
    Помогите пожалуйста, ибо всё что я читал в нэте мне не помогло, что то я по этой теме вообще нуб, задание такое:
    Разработать пользовательскую библиотеку для работы с односвязным списком (использовать динамическую память). В ней реализовать следующие функции:
    1. создание списка
    2. добавление элементов списка (учитывать сортировку)
    3. удаление элементов списка
    4. сцепление двух списков в один отсортированный.

    Продемонстрировать работу программы.


    Мой одногруппник делал так, но спросить я у него сейчас не могу(да и объяснять он толком не умеет), всё же помогите пожалуйста, я просто не могу понять саму суть, и философию списков для каждого примера


    PHP:
    #include "library.h"
    List *Add_HEAD(List* head,List* newNode)
    {
    newNode -> Next head;
    return 
    newNode;
    }
    List *
    Add_END(List *head,List *newNode)
    {
    if( 
    head == NULL)
    {
    return 
    newNode;
    }
    else
    {
    List *
    l(head);
    while(
    ->Next != NULL)
    l->Next;
    ->Next newNode;
    }
    return 
    head;
    }
    void Add_SORTIROVKA(List * head,List *newNode)
    {
    List *
    l(head);
    while(
    newNode ->Data > (l->Next)->Data)
    l->Next;
    newNode ->Next ->Next;
    ->Next newNode;
    }
    void print(List *l)
    {
    if( 
    == NULL)
    cout << "Нет такой записи" << endl;
    else
    {
    int i 1;
    while(
    l)
    {
    cout << i++ << " Элемент списка:";
    cout << -> Data << endl;
    -> Next;
    }
    }
    }
    void deleteList(List *head)
    {
    if(
    head != NULL)
    {
    while(
    head != NULL)
    {
    List *
    head -> Next;
    delete head;
    head l;
    }
    }
    }
    List *
    deleteEL(List *head,int n)
    {
    if(
    n==0)
    {
    List * 
    head->Next;
    delete head;
    return 
    l;
    }
    else
    {
    List *
    head;
    n-=1;
    for ( 
    int i 0ni++)
    {
    -> Next;
    }
    List *
    todel -> Next;
    -> Next = (-> Next) -> Next;
    delete todel;
    return 
    head;
    }
    }
    void Sortirovka(List *head)
    {
    List *
    head;
    int temp;
    while( 
    head != NULL)
    {
    head ->Next;
    while( 
    != NULL)
    {
    if( 
    head->Data l->Data)
    {
    temp head ->Data;
    head ->Data ->Data;
    ->Data temp;
    }
    ->Next;
    }
    head head ->Next;
    }
    }
     
  2. abdyla_v

    abdyla_v Гость

    Репутация:
    0
  3. CppManiac

    CppManiac Гость

    Репутация:
    0
    ок спасибо, а как это для демонстрации связать? допустим ввод и вывод списка для
    void slstore(struct address *i,
    struct address **last)
    {
    if(!*last) *last = i; /* первый элемент в списке */
    else (*last)->next = i;
    i->next = NULL;
    *last = i;
    }
     
Загрузка...

Поделиться этой страницей