Форум программистов, компьютерный форум CyberForum.ru

Кольцевой односвязный список - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Записи http://www.cyberforum.ru/cpp-beginners/thread271323.html
А. Описать запись с именем AEROFLOT, содержащую следующие поля: -Название пункта рейса -Номер рейса -Тип самолёта Ввести с клавиатуры данные о 10 рейсах, записи упорядочит по возростанию номера рейса. Б. Написать программу, выполняющую следующие действия: -Вывод на экран номера рейсов и типов самолетов, вылетающих в пункт назначения, название которого совпало с названием, введённым с...
C++ Описать структуру с именем WORKER описать структуру с именем WORKER содержащую следующие поля: Фамилия инициалы роботника; названия занемаемой должности; год поступления. http://www.cyberforum.ru/cpp-beginners/thread271315.html
C++ Преобразование из ASCII в символ
Подскажите, есть двумерный массив, int Massiv={{'H','E','L','L','O'}, {'W','O','R','L','D'}}; после for (int m=0;m<2;m++) { for (int n=0;n<5;n++) {
Написать шаблон функции, и Создать класс. C++
Помогите ктота пожалуста ... Ето надо на С++ зделать. Спасибо за рание! 1. Написать шаблон функции вычисления произведения двух векторов. 2. Создать класс, в котором есть переменные-члены и одномерный массив. Инициализировать элементы массива случайными числами через внутренний указатель класса this.
C++ Классы http://www.cyberforum.ru/cpp-beginners/thread271250.html
Разработать классы для описанного ниже объекта.Включить в класс методы(...),get (...),show (...).Определить другие методы.Написать программу,демонстрирующую работу с этим классом.Класс соответствует индивидуальному варианту. Person:Фамилия,Имя,Отчество,Адрес,Пол,Образование,Год рождения.Определить является ли человек совершеннолетним.
C++ Объединения, поля битов, перечисления всем доброго времени суток есть у меня задача затрудняюсь сделать сам вот само задание Перевести целое положительное двухбайтное число из десятичной в шестнадцатеричную систему счисления: использую эти самые поля битов я сейчас буду писать если кто может помочь или подсказать пишите буду благодарен. Добавлено через 5 минут так ну поля битов я кажется понял подскажиет ка модно реализовать... подробнее

Показать сообщение отдельно
vaselo
19 / 19 / 1
Регистрация: 17.10.2010
Сообщений: 247

Кольцевой односвязный список - C++

06.04.2011, 19:57. Просмотров 10908. Ответов 23
Метки (Все метки)

Доброго времени суток, требуется помощь в создании односвязного кольцевого списка. смог только этот быдлокод:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
struct stud
{
   int m;
   stud* l;
   stud* r;
};
 
stud* FindLast(stud* firstC)
{
    if(firstC==NULL) return NULL;
    stud *tmp=firstC;
    while(tmp!=firstC)
        tmp=tmp->next;// переходим на последний элемент
    return tmp;//возвращает указатель на сущ. последний элемент
}
void showC(stud* firstC)
{
    while(FindLast(firstC)!=firstC)
    {
        cout<<endl<<firstC->name;
        firstC=firstC->next;
    }
}
void add(stud* &firstC)
{
    if(firstC==NULL)
    {
        cout<<"Input string: ";
        firstC=new stud;
        cin>>firstC->name;
        firstC->next=NULL;
        return;
    }
    stud* p=new stud;
    cout<<"Input string: ";
    cin>>p->name;
    p->next=firstC;
    firstC=p;
    FindLast(firstC)->next=firstC;;//находим последний ссылаем его на новодобавленный
}
void del(stud* &firstC)
{
    if(firstC!=NULL && FindLast(firstC)==NULL){delete firstC; firstC=NULL; return;}
    if(firstC==NULL) {cout<<"\nAlready empty"; Sleep(200); return;}
    stud*p=firstC;
    while(p->next->next!=firstC)
        p=p->next;//нашли предпоследний
    delete p->next;//удалили посл.
    p->next=firstC;//предпоследний->первый
}
Добавлено через 1 час 23 минуты
слегка разобрался с остальными, а вот второй и дальше никак не хочет добавлять
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
stud* FindLast(stud* firstC)
{
    if(firstC==NULL) return NULL;
    stud *tmp=firstC;
    while(tmp!=firstC)
        tmp=tmp->next;// переходим на последний элемент
    return tmp;//возвращает указатель на сущ. последний элемент
}void add(stud* &firstC)
{
    if(firstC==NULL)
    {
        cout<<"Input string: ";
        firstC=new stud;
        cin>>firstC->name;
        firstC->next=NULL;
        return;
    }
    stud* p=new stud;
    cout<<"Input string: ";
    cin>>p->name;
    p->next=firstC;
    firstC=p;
    FindLast(firstC)->next=firstC;//находим последний ссылаем его на новодобавленный
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru