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

Односвязный список. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 8, средняя оценка - 4.63
МИШЛЯНДИЯ
0 / 0 / 0
Регистрация: 13.01.2011
Сообщений: 12
07.02.2011, 17:22     Односвязный список. #1
Привет -_-
В моем понимании односвязный список это типо прямоугольнички, состоящие из двух - в одном из них типо содержание прямоугольничка (поле) а в другом указатель на посл. прямоуг. списка =D

ну так вот... передо мной стоит задача

16. На основе односвязного списка организовать очередь.

Че ваще от меня нужно 0_0

Поясните мне плиз задание. Я понимаю что такое очередь.

типо мне надо сделать "прыжки" по списку так как в очереди? типо что первым вошел в список - первым из него и выйдет.

Собственно как это сделать?
Помогите плиз нубу =D

Добавлено через 42 минуты
Если поставленная изначально задача бросает вас в забвение, то предложу более реальную задачу

18. На основе двухсвязанного списка разработать процедуру вычитания больших
чисел.

но тут уже Двушка -_- Двушка это типо когда есть указатель на предыдущий и послед. прямоугольничек?)

Это задание на самом деле лютое очень)

Даже не понятно как произвести реализацию.

Сделать содержимое элементов списка по 4? или как?

ну типо у нас допустим 1 234 567 - 1 111 111

И тут типо надо работать отдельно с каждым элементом списка?

Я так понимаю, что у нас имеется 2 списка:

1 234 567
и
1 111 111

и мы берем последовательно начиная с первого элементы каждого списка и вычитаем?

или я вообще не правильно понимаю списки?

или надо брать

1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1

и вычитать по одиночкам?

и при этом исходя из свойства двухсвязного списка если у нас в верхнем к примеру 8 а в нижнем 9, то тогда мы ссылаемся на предыдущий элемент списка и изменяем его на единицу (начало типо справа взято =D) а переходы рассматриваемых пар осуществляются путем перехода на послед. элементы (по свойству двусвязного списка: переходы можно делать к послед. и предыдущ. элементу.)

Я правильно понимаю способ реализации?

Добавлено через 7 минут
для тех, кто не понял, что я сказал поясню

в первом случае я подразумеваю, что содержания прямоугльничков взяты по 3

типо первый прям. 1 , во втором 234, в третье 567

а в другом списке в первом 1, во втором 111 и т.д.

А во второй версии прямоугольничков 9

типо по 1 элементу

и это более логично

я даже уже признаю о ненужности первого варианта, т.к допусти если сочетания берутся 234 - 567

то мы не сможем произвести вычитание, т.к. невозможно применить правила вычитания здесь.

А во 2 случае мы сами прекрасно можем закодить вычитания элементов "поодиночно" и если типо при вычитании отриц. число, то берем "десятку" из послед. элемента.

но вот в чем прикол

я щас то понял

у нас движение по списку идет

9 -> 8 и т.д

т.е. с конца

т.е.

<-

и при взятии десятки движение идет также

<-

по логике - это односвязный список (если обратить то будет -> как в односвязном списке.)

а у меня двусвязный список

кароче мой мозг разрядился и я уйду в афк на 2 часа. Надеюсь, что вы откроете иистину

Добавлено через 2 минуты
АХАХАХ

А если рассмотреть сумму а не разность, то получиться тоже реализация односвязного списка, т.к. мы движемся

<- по списку (начало взято справа)

и если складываем 5 и 6

то увеличиться элемент который расположен

<-

печалько....

тоже одностороннее движение

ААА! Помогитеее =D

Добавлено через 2 минуты
А я вот сейчас подумал

На примере суммы...

Если задать движение
->
(начало взято СЛЕВА)

и при встрече 5 + 6

нам надо будет вернуться к предыдущему элементу!

т.е

<-

=D

Неужели это и есть истина???

Скажите плиз что я прав =DDD

Добавлено через 2 минуты
P.S. Если я вынес Вам мозг, то сорри я не спецально -_-
Если вы думаете что я просто тупой и не понимаю списков, то я тоже не спецально =___=
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.02.2011, 17:22     Односвязный список.
Посмотрите здесь:

Односвязный список C++
C++ Односвязный список
односвязный список C++
C++ Односвязный список
Односвязный список C++
C++ Односвязный список
Односвязный список C++
C++ Односвязный список

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
07.02.2011, 17:28     Односвязный список. #2
Цитата Сообщение от МИШЛЯНДИЯ Посмотреть сообщение
На основе односвязного списка организовать очередь.
Очередь
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
07.02.2011, 18:20     Односвязный список. #3
пишешь свой односвязный List с 4 методами
* front()
* back()
* push_back()
* pop_front()
а потом так
C++
1
2
3
4
5
6
7
#include<iostream>
#include<queue>
using namespace std;
 
int main(){
    queue<int, List<int> > q;
}
Yandex
Объявления
07.02.2011, 18:20     Односвязный список.
Ответ Создать тему
Опции темы

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