Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.12.2013, 21:04   #1
Geni
Пользователь
 
Регистрация: 13.12.2013
Сообщений: 11
По умолчанию связный список и массив

Здравствуйте!
А каким образом можно записать связный список в одномерный массив.
Вот код создание списка:
Код:
struct element
{
 TE ch;
 element *next;
};

element* CreatList();

element* CreatList()
{
 element *FIRST, *CURRENT;
 string ans;

 cout<< "Input first character: ";
 FIRST=CURRENT=new element;
 cin>> CURRENT->ch;

 cout<< "Do you want input new character? ('y' for yes and 'n' for exit): ";
 cin >> ans;

 while(ans != "n")
           {
           CURRENT->next = new element;
           CURRENT = CURRENT->next;
           cout << "Input character:  ";
           cin>>CURRENT->ch;
           cout<< "Do you want input new character? ('y' for yes and 'n' for exit): ";
           cin>> ans;
           }

 CURRENT->next = NULL;

 return FIRST;
}

int main()
{
first=CreatList();
}
Geni вне форума Ответить с цитированием
Старый 13.12.2013, 21:19   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
int ListCount(element  *CURRENT)
{
 int k=0;
 while(ans != "n")
           {
 k++;
           CURRENT = CURRENT->next;
           }

 return k;
}

int* ToArray(element  *CURRENT)
{
 int *a=new int[ListCount(CURRENT)]; k=0;
 while(ans != "n")
           { a[k++]=CURRENT->ch;
           CURRENT = CURRENT->next;
           }

 return a;
}
Соответственно ToArray(first) вернет массив.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.12.2013, 21:25   #3
Geni
Пользователь
 
Регистрация: 13.12.2013
Сообщений: 11
По умолчанию

оперативно
оно у меня пишет что неизвестный идентификатор ans, как его объявить, у меня в начале тоже он используется но, там все ок.
Geni вне форума Ответить с цитированием
Старый 13.12.2013, 21:45   #4
Geni
Пользователь
 
Регистрация: 13.12.2013
Сообщений: 11
По умолчанию

В общем мне нужно сделать сортировку по алфавиту, я хотел сначала записать список в массив, а потом сортировать с помощью strcmp и strcpy, может можешь написать как сортировать сразу список?
Geni вне форума Ответить с цитированием
Старый 13.12.2013, 21:57   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ошибся: while(CURRENT) // Вот так нужно было написать.
Цитата:
мне нужно сделать сортировку по алфавиту
Так это совсем другая задача. Массив тут не нужен.
Примеры сортировки списков есть на форме
Например:http://www.programmersforum.ru/showthread.php?t=71059
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.12.2013, 22:04   #6
Geni
Пользователь
 
Регистрация: 13.12.2013
Сообщений: 11
По умолчанию

Так там сортировка как с массивом. Вот мой исходник (http://www.ex.ua/74181807), можешь написать сортировку по алфавиту, или не написать, а переделать для связного списка ту сортировку. Просто это на завтра и не могу никак до конца "въехать" в эти списки.
Geni вне форума Ответить с цитированием
Старый 13.12.2013, 22:28   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Сортировку то написать можно, только у тебя список символов а не строк. Ты уж определись.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.12.2013, 22:30   #8
Geni
Пользователь
 
Регистрация: 13.12.2013
Сообщений: 11
По умолчанию

Можешь написать сортировку для моей программы, пожалуйста!
Geni вне форума Ответить с цитированием
Старый 14.12.2013, 13:42   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Без обид, но я пас )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 14.12.2013, 18:19   #10
Geni
Пользователь
 
Регистрация: 13.12.2013
Сообщений: 11
По умолчанию

та уже все, спасибо и на том
Тема сортировки закрыта
Geni вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Связный список GripEnemy Visual C++ 2 08.12.2011 16:19
Связный список batman01 Общие вопросы C/C++ 1 15.10.2011 01:31
связный список xeops Visual C++ 6 30.09.2011 09:39
Связный список, массив Ga-sergey Помощь студентам 6 24.05.2011 17:06
Связный список С++ Шёпот Общие вопросы C/C++ 2 01.04.2011 22:56