Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 01.07.2011, 08:49
Аватар для [ANTI]CheateR
Интересующийся
Отправить личное сообщение для [ANTI]CheateR Посмотреть профиль Найти все сообщения от [ANTI]CheateR
 
Регистрация: 17.09.2010
Сообщений: 16

Вывести значения односвязного списка
Доброе утро, ребят.

Сегодня наткнулся на хитрую задачу:

function reversePrint (linkedList) {
                   // ...
         }
         
         var someList = {
                   value: 1,
                   next: {
                            value: 2,
                            next: {
                                      value: 3,
                                      next: {
                                               value: 4,
                                               next: null
                                      }
                            }
                   }
         };
         reversePrint(someList);


Напишите код функции (reversePrint), которая выведет значения переданного ей односвязного списка в обратном порядке (4,3,2,1). Для вывода значений используйте конструкцию console.log.

Наверное, многие поняли откуда эта задачка

У меня есть решение, но оно какое-то банальное... А как бы вы решили задачу?
И, кстати, объясните, пожалуйста, что это за конструкция console.log

Последний раз редактировалось [ANTI]CheateR, 01.07.2011 в 08:53.
Ответить с цитированием
  #2 (permalink)  
Старый 01.07.2011, 08:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от [ANTI
CheateR]У меня есть решение, но оно какое-то банальное..
Таки показал бы...
Ответить с цитированием
  #3 (permalink)  
Старый 01.07.2011, 08:55
Аватар для [ANTI]CheateR
Интересующийся
Отправить личное сообщение для [ANTI]CheateR Посмотреть профиль Найти все сообщения от [ANTI]CheateR
 
Регистрация: 17.09.2010
Сообщений: 16

может мне стыдно?)


function reversePrint (linkedList) {
   alert(linkedList.next.next.next.value+", "+linkedList.next.next.value+", "+linkedList.next.value+", "+linkedList.value)
}



ну это реально чушь какая-то)
Ответить с цитированием
  #4 (permalink)  
Старый 01.07.2011, 08:57
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от [ANTI
CheateR]ну это реально чушь какая-то
Ну да...
Вложеность предполагает использование рекурсии.
Ответить с цитированием
  #5 (permalink)  
Старый 01.07.2011, 09:10
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Как вариант...

function reversePrint (linkedList) {
	if (linkedList.next) {
		reversePrint(linkedList.next)
	}
	alert(linkedList.value)
}
var someList = {
	value: 1,
	next: {
		value: 2,
		next: {
			value: 3,
			next: {
				value: 4,
				next: null
			}
		}
	}
};
reversePrint(someList);
Ответить с цитированием
  #6 (permalink)  
Старый 01.07.2011, 13:11
Аватар для [ANTI]CheateR
Интересующийся
Отправить личное сообщение для [ANTI]CheateR Посмотреть профиль Найти все сообщения от [ANTI]CheateR
 
Регистрация: 17.09.2010
Сообщений: 16

Крут! Спасибо

console.log ведь только в firebug'e используется?
Ответить с цитированием
  #7 (permalink)  
Старый 01.07.2011, 14:05
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от [ANTI
CheateR]console.log ведь только в firebug'e используется?
Это я не вкурсе...
Ответить с цитированием
  #8 (permalink)  
Старый 02.02.2015, 09:26
Новичок на форуме
Отправить личное сообщение для SergeyGG Посмотреть профиль Найти все сообщения от SergeyGG
 
Регистрация: 02.02.2015
Сообщений: 3

Сообщение от ksa Посмотреть сообщение
Как вариант...

function reversePrint (linkedList) {
	if (linkedList.next) {
		reversePrint(linkedList.next)
	}
	alert(linkedList.value)
}
var someList = {
	value: 1,
	next: {
		value: 2,
		next: {
			value: 3,
			next: {
				value: 4,
				next: null
			}
		}
	}
};
reversePrint(someList);
То есть : функция если встречает что то в next запускает себя еще раз, но мне всё равно не понятно как она сохраняет уровень вложенности для списка.
Почти месяц ломаю голову с этими списками. Но щас становится ясно. Не понятно новичку как себя ведет интерпритар в таких ситуациях. Не где толком не раскрывают этот момент. Может посоветуете источники какие нить на русском или курсы. Я читаю книжку "Выразительный javaScaript" на русском. И как раз застрял на списках. Щас чуть прояснилось.
Ответить с цитированием
  #9 (permalink)  
Старый 17.03.2016, 22:07
Новичок на форуме
Отправить личное сообщение для Боря Посмотреть профиль Найти все сообщения от Боря
 
Регистрация: 26.06.2015
Сообщений: 2

ответ на вопрос
Уважаемый, хотя я и сам ищу информацию про списки, в этом случае я думаю список вложенности вычисляется по уровню указателя, т.е. если указатель указывает на 2 элемент, значит рекурсия находиться на 1 первом уровне и т.д.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вытащить со страницы все значения name и value из тегов <input> qwr938 Общие вопросы Javascript 8 13.02.2011 15:16
Заполнить список значениями из динамически созданного выпадающего списка zhuzha Элементы интерфейса 0 17.08.2010 14:40
Sortable, два связанных списка. Как один из них сделать неизменяемым? kvecxjo jQuery 1 30.03.2010 03:15
Передать все значения списка разом LRCenter Элементы интерфейса 10 23.06.2009 12:29
Добавить значения из одного списка в другой XAOC Events/DOM/Window 10 28.08.2008 13:18