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

Работа на 2х сторонний список - C++

Восстановить пароль Регистрация
 
jeka213
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 11
05.06.2011, 15:12     Работа на 2х сторонний список #1
Делаю курсач по программированию.
Курсач состоит из меню с вопросами.
Один из пунктов " Алфавитный список". В нем у меня список марок машин и кол-во л.сил сколько приходится на ту или инную машину.
Пример"
Хендаи 122
Ауди 220 и т.д.
А препод попросил сделать 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
alfalist(struct z* client)
{
int i;
struct sp* nt;
char fio[20];
 
spisok=0;
for(i=0;i<NC;i++)
    vstavka(client,client[i].name);
window(1,1,80,25);
textattr(LIGHTGRAY);
clrscr();
printf("\n    Алфавитный список марок");
printf("\n    ===============================\n");
for(nt=spisok; nt!=0; nt=nt->sled)
        printf("\n %-20s %ld",nt->fio,nt->summa);
 
press();
}
 
 vstavka(struct z* client,char* fio)
{
int i;
struct sp *nov,*nt,*z=0;
for(nt=spisok; nt!=0 && strcmp(nt->fio,fio)<0; z=nt, nt=nt->sled);
if(nt && strcmp(nt->fio,fio)==0) return;
 
nov=(struct sp *) malloc(sizeof(struct sp));
strcpy(nov->fio,fio);
nov->sled=nt;
 
nov->summa=0;
for(i=0;i<NC;i++)
    if(strcmp(client[i].name,fio)==0)
        nov->summa+=client[i].summa;
 
if(!z) spisok=nov;
else z->sled=nov;
 
return;
}
Это естественно вырезка из курсача без массивных данных. Но суть все равно сводится к тому что я не знаю как перестроить код.
Поменять значения сравнения знаков в другую сторону? - Один из доводов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2011, 15:12     Работа на 2х сторонний список
Посмотрите здесь:

C++ Односвязный линейны список (работа с ним)
Как добавить готовый (сторонний) проект в Visual Studio 2012 C++
C++ Список. Сортировка и поиск по списку. Работа с файлами
Работа с файлами. Выведите список авторов в порядке убывания популярности, и названия издательств, которые публиковали их книги. C++
Работа с файлами. Вывести список группы по убыванию года рождения студента C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Amarted
 Аватар для Amarted
157 / 19 / 2
Регистрация: 26.02.2010
Сообщений: 56
05.06.2011, 16:10     Работа на 2х сторонний список #2
Ну в принципе инверсную сортировку сделать просто, например с помощью swap()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <queue>
using namespace std;
int main()
{
    char ch = 'a';
    int i,j;
    deque<char> sortList(10);    //искомый двусторонний список
    for (i=0; i<10; ++i)        //инициализация от a до j
    sortList[i] = ch++;
    for (i=0; i<sortList.size(); i++) //для проверки выводим 
        cout<<sortList[i];  //изначальное содержимое
    cout<<endl;
    for (i=0,j=9;i<sortList.size()/2;i++,j--) //меняем местами первый и последний
    swap(sortList[i],sortList[j]);      // второй и предпоследний и т.д.
    for (i=0; i<sortList.size(); i++)   //выводим результат
        cout<<sortList[i];
    system("pause");
    return 0;
}
но для этого помоему не обязательно использовать двустороннюю очередь. А если препод хотел что бы использовалась именно она, то нужно использовать то что в ней удобней всего добавляются и удаляются первый и последний элемент.... незнаю надо думать.
jeka213
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 11
05.06.2011, 16:16  [ТС]     Работа на 2х сторонний список #3
спасибо. это натолкнула на мысль одну. попробую пока что)
jeka213
0 / 0 / 0
Регистрация: 05.06.2011
Сообщений: 11
06.06.2011, 20:04  [ТС]     Работа на 2х сторонний список #4
пробовал в итоге ничего так и не получилось. нужна помощь 8( завтра сдавать. не обязательно данный пример. можно и что-то подобное с работами на список.
Yandex
Объявления
06.06.2011, 20:04     Работа на 2х сторонний список
Ответ Создать тему
Опции темы

Текущее время: 21:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru