LINUX.ORG.RU

Сообщения Sonsee

 

метод удаления из бинарного дерева не работает

Форум — Development

Помогите кто-нибудь найти ошибку в коде, не могу понять почему он не работает. Точнее, после удаления нескольких элементов дерево линкуется неправильно и потом выкидывает NullPointerException(), потому что не может найти элемент (который в дереве точно есть).

// в коде: .next - право, .prev - лево

Алгоритм:

Если дерево T пусто, остановиться;
Иначе сравнить K с ключом X корневого узла n.
Если K>X, рекурсивно удалить K из правого поддерева Т;
Если K<X, рекурсивно удалить K из левого поддерева Т;
Если K=X, то необходимо рассмотреть три случая.
Если обоих детей нет, то удаляем текущий узел и обнуляем ссылку на него у родительского узла;
Если одного из детей нет, то значения полей ребёнка m ставим вместо соответствующих значений корневого узла, затирая его старые значения, и освобождаем память, занимаемую узлом m;
Если оба ребёнка присутствуют, то найдём узел m, являющийся самым левым узлом правого поддерева с корневым узлом Right(n);
скопируем данные (кроме ссылок на дочерние элементы) из m в n; рекурсивно удалим узел m.

сам код:


	public void remove(T t) {
		Node<T> curr, replacement;
		Node<T> newItem = new Node<T>(t);
		
		lock.lock();
		curr = tree;
		
		try {
			
			if (curr.item != null) {
				
				while (curr.compareTo(newItem) != 0) {
					if (curr.compareTo(newItem) == 1) {
						curr = curr.next;
					} 
					else {
						curr = curr.prev;
					}
				}
				
				if (curr.next == null && curr.prev == null) {
					curr = null;
				} 
				else if (curr.next == null) {
					curr.item = curr.prev.item;
					curr.prev = null;
				} 
				else if (curr.prev == null) {
					curr.item = curr.next.item;
					curr.next = null;
				} 
				else {
					replacement = curr.next;					
					
					if (replacement.prev != null && replacement.next != null) {
						replacement = replacement.prev;
						Node<T> link = curr.next;

						while (replacement.prev != null) {
							link = replacement;
							replacement = replacement.prev;
						}
                                          
                                                curr.item = replacement.item;
						
						if (replacement.next != null) {
							link.prev = replacement.next;
						} else {
							replacement = null;
						}
						
					} 
					else if (replacement.next != null) {
						curr.item = replacement.item;
						curr.next = curr.next.next;
					} else {
						curr.item = replacement.item;
						curr.next = null;
					}
					
				}
			
			
		} catch (UnsupportedOperationException e) {
			throw new UnsupportedOperationException();
		} finally {
			lock.unlock();
		}
	}

 

Sonsee
()

что вы думаете таких возможностях науки?

Форум — Talks

Посмотрел такой вот видео ролик:

http://www.youtube.com/watch?feature=player_embedded&v=hupHAPF1fHY

описание к видео:

Ed Boyden shows how, by inserting genes for light-sensitive proteins into brain cells, he can selectively activate or de-activate specific neurons with fiber-optic implants. With this unprecedented level of control, he's managed to cure mice of analogs of PTSD and certain forms of blindness. On the horizon: neural prosthetics.

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

А если фантазию включить, ведь такие возможности дают абсолютную власть владельцам технологии.

Интересно, что думают лоровцы по этому поводу.

Sonsee
()

подскажите как правильно составить команду

Форум — General

Мне нужно создать tar.gz архив на удаленном сервере и скопировать его на локальный.

Т.е. создаем архив

tar cvf a.tar.gz что-то/

и потом копируем:

scp a.tar.gz login@localhost

Проблема в том, что на удаленном сервере дисковая квота не позволяет создать архив.

Возможно ли одновременно создавать архив и отправлять на localhost? т.е. по сути создавать на localhost? подскажите пожалуйста как это сделать.

Так же нет возможности устанавливать сторонний софт, нужно обойтись стандартными программами.

Sonsee
()

скрипт для запоминания яркости

Форум — General

Возможно ли написать скрипт, который будет запоминать яркость монитора во время выхода и/или выключения компьютера, и потом применять тоже самое значение при входе того же пользователя? Может уже есть что-то готовое? Не могу найти.

 ,

Sonsee
()

кто-то вообще играет в APB Reloaded?

Форум — Games

сабж.

есть такие?

Перемещено DoctorSinus из talks

 play for free

Sonsee
()

Rakarraсk

Форум — Talks

подскажите пожалуйста, как настроить в этой программе хорошо «качающий» distortion?

Sonsee
()

фокус под мышкой, прозрачность

Форум — General

Что нужно сделать, что бы неактивные окна становились прозрачными в unity?

Вроде как Opacify эту функцию должно включать, или нет?

 ,

Sonsee
()

а на открытых radeon драйверах как-то можно настроить цвета?

Форум — Desktop

сабж.

Sonsee
()

что делать с ускорением видео на открытых драйверах?

Форум — General

сабж.

может там уже какое vdpau запилили, кто-то тут писал.

 , ,

Sonsee
()

зависает убунта 12.04

Форум — General

в syslog прямо перед зависанием:

May  6 20:28:33 gnome-session[2716]: Gdk-WARNING: gnome-session: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.#012
May  6 20:28:34 kernel: [26338.987625] [fglrx] IRQ 46 Disabled

происходят зависания внезапно, иногда падает X и выкидывает на логин при просмотре веб страничек (пока не понял каких именно, в последний раз смотрел видео - флеш).

дефолтная убунта с последними обновлениями.

кто-нибудь знает как починить?

Sonsee
()

[вендекапец] ОН

Форум — Talks

В Германии запретили Windows 7 и Xbox

Суд в Мангейме предписал убрать с немецкого рынка ряд продуктов Microsoft, включая игровые консоли Xbox 360 и операционную систему Windows 7, сообщает Reuters. Эти продукты нарушают принадлежащие компании Motorola Mobility патенты, постановил судья Хольгер Кирхер (Holger Kircher). Патенты касаются алгоритмов сжатия видео и беспроводного подключения к интернету.

Представители Microsoft, в свою очередь, заявили, что вердикт не скажется на продажах продуктов компании в Германии. В апреле американский суд заранее запретил Motorola добиваться исполнения решения немецкого суда, пока в США идет аналогичное разбирательство.

В заявлении Microsoft также говорится, что компания подаст апелляцию.

Reuters указывает, что компания Стива Балмера заранее предприняла шаги по защите своих позиций в Европе. В начале апреля Microsoft объявила о переносе европейского центра дистрибуции программ из Германии, где проходит большинство патентных судов, в Нидерланды.

Тяжба из-за патентов между двумя компаниями развернулась в 2010 году. Первой обвинения выдвинула Microsoft; Motorola Mobility подала встречные иски месяц спустя.

В конце апреля 2012 года решение в пользу Motorola Mobility вынес судья Комиссии по международной торговле США (ITC). Он счел, что консоль Xbox 360 нарушает четыре патента Motorola. Если вину Microsoft признает и специальная комиссия ITC, приставка может оказаться под запретом и в США.

Суды в Германии вынесли несколько важных решений по патентным спорам между крупными производителями электроники, включая тяжбу между Samsung и Apple.

http://lenta.ru/news/2012/05/02/ban/

Дискас?

 

Sonsee
()

как повесить юнити в 12.4

Форум — Talks

запускаем ccsm
кликаем настройки (preferences)
выбираем профиль...
???

-----

еще, несколько раз внезапно падал компиз
панель слева не настривается совем
верхняя панель вообще непонятно зачем
....
facepalm

 

Sonsee
()

бесплатная альтернатива visio под linux

Форум — Talks

нужна для рисования DFD.

знаю про Dia.

Sonsee
()

вузы, CS

Форум — Talks

Есть ли в Москве вузы с отделением компьютерные науки или чем-то подобным?

Sonsee
()

в последнем linux-pf отвалился звук

Форум — General
Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio

это которое в репозитории.

[pfkernel]
# Generic and optimized binaries of the ARCH kernel patched with BFS, TuxOnIce, BFQ, IMQ, Aufs3
# linux-pf, kernel26-pf, gdm-old, nvidia-pf, nvidia-96xx, xchat-greek, arora-git
Server = http://dl.dropbox.com/u/11734958/$arch
Sonsee
()

X падает при запуске mplayer с xv

Форум — General

сабж.

X.Org X Server 1.11.4
MPlayer SVN-r34578-4.6.2

что делать?

 , ,

Sonsee
()

[arch][linux-pf][tuxOnIce] Compress_read returned -22

Форум — General

поставил pf ядро как написано в вики, все хорошо, только пришлось catalyst ставить вручную - из репов не поставилось почему-то..

пробую выключать ноут коммандой:

hibernate -F /etc/hibernate/tuxonice.conf

на старте получаю сабж (скриншот).

/etc/hibernate/tuxonice.conf:

### TuxOnIce
UseTuxOnIce yes
Reboot no
EnableEscape yes
DefaultConsoleLevel 1
Compressor lzo
Encryptor none
# ImageSizeLimit 200

## useful for initrd usage:
SuspendDevice swap:/dev/sda5

...

в hibernate.conf только это:

TryMethod tuxonice.conf

/var/log/hibernate.log - пустой.

в чем проблема?

 , ,

Sonsee
()

иконки в трее кде изменяют размер

Форум — Desktop

запускаешь программу которая вешает иконку в трее (например ktorrent), и все они внезапно становятся больше, иногда нет :) иногда это происходит потом.

как это починить?

 ,

Sonsee
()

mplayer или кде4

Форум — General

можно ли в mplayer (или вообще в кде) сделать громкость 200/400%, как в vlc плеере?

 ,

Sonsee
()

ваш хваленый дебиан

Форум — Talks

сегодня обновил пакет синаптикс и теперь перестал нормально работать скрол, т.е. он работает, но такое ощущение, что на тачпад воды налили, то срабатывает, то нет.

kde 4.7.4 начинает тормозить после суспендов

переодические зависания системы (на совсем).

теперь, на что же уйти с wheezy? пробовал федору, убунту, опенсусе, арч.

p.s. это не шутка, если что.

 ,

Sonsee
()

RSS подписка на новые темы