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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
#1

Связные списки: вернуть в виде целого числа позицию name из списка - C++

19.06.2014, 10:18. Просмотров 281. Ответов 9
Метки нет (Все метки)

Помогите сделать функцию, которая возвращает в виде целого числа позицию name из списка
Функция которая меняет местами, 2 элемента списка

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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <Windows.h>
#include <iostream>
 
using namespace std;
 
struct dino {
    char name[36];
    dino* next;
    dino* prev;
};
 
 
 
 
 
 
void search (dino* first)
{
    char name[36];
    int i=1;
    if(first==NULL){cout<<"Clean\n"; Sleep(1000); return;}
    cout<<"Name forgoten dinosaur: >";
    cin>>name;
    do  {if(strcmp(name,first->name))
            {cout<<i+1<<"-th number with list\n"; Sleep(1000); return;}
        else {
                i++;
                first=first->next;
             }
        }while(first->next);
    cout<<"Sorry... List don't have this Dino\n";Sleep(1000);
    return;
}
void adding(dino* &first){
    system ("CLS");
    dino *p=new dino;
    cout<<"\nEnter Dinosaur name: ";
    cin>>p->name;
    p->next=first;
    first=p;
}
void deleting(dino* &first)
 {
    if(first==NULL){cout<<"Clean ()_()\n"; Sleep(300); return;}
    if(first->next==NULL){
        delete first;
        first=NULL;
        return;
    }
    dino* tmp=first;
    while(tmp->next->next){
        tmp=tmp->next;
    }
    delete tmp->next;
    tmp->next=NULL;
    return;
}
void delling(dino* &first)
{
    if(first==NULL){cout<<"Clean()_()\n"; Sleep(200); return;}
    if(first->next==NULL){
        delete first;
        first=NULL;
        return;
    }
    system ("CLS");
while(first->next)
    deleting(first);
    deleting(first);
    return;
}
 
 void show(dino* first)
 { if(first==NULL){cout<<"Clean!!!\n"; Sleep(200); return;}
    system ("CLS");
 
    if(first->next==0) {cout<<endl<<first->name;  Sleep(4000); return;}
    else {while(first->next)
        {
            cout<<endl<<first->name;
            first=first->next;
        }}
    if(first->next==0) cout<<endl<<first->name;
    cout<<endl;
    system("pause");
 }
 int main()
{
    dino* first=NULL;
    int sw;
    while(1)
    {
        system ("CLS");
        cout<<"1. Enter new Dinosaur\n"<<"2. Delete Dinosaur\n";
        cout<<"3. Search"<<endl<<"4. Clean"<<endl<<"5. Show list"<<endl<<"6. Bubble sort\n"<<"0. Exit"<<endl<<endl<<"....Select please...\n>";
        cin>>sw;
        switch(sw)
        {
            case 1: adding(first); break;
            case 2: deleting(first); break;
            case 3: search(first); break;
            case 4: delling(first); break;
            case 5: show(first);break;
            case 0: return 0; break;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 10:18     Связные списки: вернуть в виде целого числа позицию name из списка
Посмотрите здесь:

Извлечь 3 бита целого числа A с позиции n и перенести в число B на позицию m - C++
Доброго времени суток.Дана вот такая задача : извлечь 3 бита числа А, начиная с позиции n, и вставить их в число В, начиная с позиции...

Определить позицию самой старшей единицы в битовом представлении данного целого числа - C++
Определить позицию самой старшей единицы в битовом представлении данного целого числа!!

Связные списки и множества элементов - C++
Здравствуйте!Помогите пожалуйста переделать программу с помощью упорядоченых связных списков: 1)Написать программу которая: -проверяет...

Связные списки в С++.Не понял ничего - C++
Здравствуйте люди помогите пажалуйсто понять как работают связные списки.Я учусь по книге C++ для чайников.С начало все гладко...

Связные списки, дополнить код - C++
Прошу помочь, учусь на заочке и поэтому все очень сложно.. Есть код программы которая создает связный список элементов и позволяет...

исправить ошибку) Связные списки - C++
помогите исправить ошибку в программе сама программа с ошибкой #include &quot;stdafx.h&quot; #include &lt;stdio.h&gt; #include &lt;iostream&gt; ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
19.06.2014, 10:51     Связные списки: вернуть в виде целого числа позицию name из списка #2
Цитата Сообщение от Xoniks Посмотреть сообщение
Помогите сделать функцию, которая возвращает в виде целого числа позицию name из списка
Функция которая меняет местами, 2 элемента списка
для начала добавьте индексацию в структуру и итерируйте её в adding() , потом всё просто - проходим по списку до определённого индекса
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
19.06.2014, 11:50  [ТС]     Связные списки: вернуть в виде целого числа позицию name из списка #3
Ладно с индексацией разобрался.. а как например.. если список двусвязный и надо поменять местами 2 элемента, если они рядом, то нужно поменять 4 указателя, если через несколько элементов, то 16 указателей, как это реализовать?

Добавлено через 2 минуты
у меня есть идея.. бить список на 2 части.. и элементы которые надо поменять местами, сначала, первый раз делим на 2 части, добавляем в конец, и склеиваем, потом второй раз делим на 2 части, и вырезаем элемент, потом вставляем его
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
19.06.2014, 13:29     Связные списки: вернуть в виде целого числа позицию name из списка #4
Цитата Сообщение от Xoniks Посмотреть сообщение
Ладно с индексацией разобрался.. а как например.. если список двусвязный и надо поменять местами 2 элемента, если они рядом, то нужно поменять 4 указателя, если через несколько элементов, то 16 указателей, как это реализовать?
зачем менять связи? меняйте содержание ...
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
19.06.2014, 13:45  [ТС]     Связные списки: вернуть в виде целого числа позицию name из списка #5
препод сказал, что менять содержание это очень сильно бьет по производительности, потому что узлы в списках могут содержать огромное количество данных, и нужно через связи сделать сортировки..
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
19.06.2014, 14:36     Связные списки: вернуть в виде целого числа позицию name из списка #6
Цитата Сообщение от Xoniks Посмотреть сообщение
препод сказал, что менять содержание это очень сильно бьет по производительности, потому что узлы в списках могут содержать огромное количество данных, и нужно через связи сделать сортировки..
есть такое дело, ох уж эти преподы, ну тогда да, менять узлы (правда почему 16?)

o1<->o2<->o3
в o2 2 узла last и next, в o1 next , в о3 last - 4 узла, и в др соответственно 4 узла
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
19.06.2014, 14:55  [ТС]     Связные списки: вернуть в виде целого числа позицию name из списка #7
o1<->o2<->o3<->o4<->o5 (меняю о2 с o4) 16 выходит связей менять
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
19.06.2014, 15:00     Связные списки: вернуть в виде целого числа позицию name из списка #8
Цитата Сообщение от Xoniks Посмотреть сообщение
o1<->o2<->o3<->o4<->o5 (меняю о2 с o4) 16 выходит связей менять
у вас тут 5 элементов, в каждом из которых по 2 узла, их всего 10 , мб я вас не правильно понимаю ....
Xoniks
0 / 0 / 0
Регистрация: 24.04.2014
Сообщений: 31
19.06.2014, 15:38  [ТС]     Связные списки: вернуть в виде целого числа позицию name из списка #9
ну вот o2 на него указывает o1 и o3 а он на них аналогично o4 с o3, o5, получается 8 указателей, отрываем, и 8 добавляем, может я не правильно думаю...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2014, 15:43     Связные списки: вернуть в виде целого числа позицию name из списка
Еще ссылки по теме:

Что не так с кодом? Компилируется, но не работает (связные списки) - C++
#include &quot;stdio.h&quot; #include &quot;stdlib.h&quot; #include &lt;string.h&gt; #include &quot;iostream&quot; using namespace std; class Elem { ...

Вернуть все четные числа массива в виде нового массива - C++
Функция должна вернуть все четные числа массива в виде нового массива. int *f2 (int *mas,int N) { int size=0; for(int i=0;...

Односвязные списки.Вставка элемента в заданную позицию - C++
Здравствуйте, я столкнулся с такой проблемой точнее наверно с непониманием...короче говоря нужно в список добавить элемент по позиции вот...

Списки. К каждому элементу списка прибавить значение следующего элемента списка. Последний элемент не менять - C++
Данные списка должен ввести пользователь. Результат нужно сформировать в начальном списке, никаких новых списков создавать нельзя. Спасибо!


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
dzrkot
zzzZZZ...
519 / 349 / 53
Регистрация: 11.09.2013
Сообщений: 1,996
19.06.2014, 15:43     Связные списки: вернуть в виде целого числа позицию name из списка #10
Yandex
Объявления
19.06.2014, 15:43     Связные списки: вернуть в виде целого числа позицию name из списка
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru