С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1185 / 755 / 127
Регистрация: 10.03.2012
Сообщений: 4,855

Вывод односвязного списка по возрастанию и в обратном порядке

28.09.2023, 11:30. Показов 713. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
let list = {
  value: 1,
  next: {
    value: 2,
    next: {
      value: 3,
      next: {
        value: 4,
        next: null
      }
    }
  }
};
Написать функции printList(list) и printReverseList(list) которые выводит элементы списка по одному и в обратном порядке.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.09.2023, 11:30
Ответы с готовыми решениями:

Распечатка односвязного списка в обратном порядке
Услышал, через много рук, условие задачи, заданной парню на собеседовании. Мучает вопрос уже вторые сутки, уснуть не могу. Такое ощущение,...

Возвращение односвязного списка в обратном порядке
Добрый день! Ни как не могу сообразить, помогите пожалуйста. Есть класс односвязного списка, нужно написать функцию для...

Вывести элементы односвязного списка в обратном порядке
подскажите, пожалуйста, как вывести элементы односвязного списка в обратном порядке?

8
 Аватар для web_coder2
755 / 359 / 100
Регистрация: 04.10.2018
Сообщений: 548
28.09.2023, 12:35
JavaScript
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
let list = {
  value: 1,
  next: {
    value: 2,
    next: {
      value: 3,
      next: {
        value: 4,
        next: null
      }
    }
  }
};
 
function printList(list) {
    let node = list;
    while(node){
        console.log(node.value);
        node = node.next
    }
}
printList(list)
 
function printReverseList(list){
    const printreverse = node => {
        if(node){
            printreverse(node.next)
            console.log(node.value)
        }
    }
    printreverse(list)
}
printReverseList(list)
2
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
28.09.2023, 19:34
Первую функцию так бы написал...
JavaScript
1
2
3
4
function printList(list) {
    console.log(list.value);
    if(list.next) printList(list.next);
}
Добавлено через 3 часа 3 минуты
Две, - вот так...
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const [
    printList,
    printReverseList
] = [
    list => {
        console.log(list.value);
        list.next ? printList(list.next) : null;
    },
    list => {
        list.next ? printReverseList(list.next) : null;
        console.log(list.value);
    },
];
 
printList(list); // 1 2 3 4
printReverseList(list); // 4 3 2 1
2
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
29.09.2023, 09:09
Цитата Сообщение от Whitecolor Посмотреть сообщение
односвязного списка
На счет односвязанного списка я бы поспорил. Ибо односвязанный список, это когда элементы последовательно ссылаются на последующий элемент списка т.е. имею ссылку (физический адрес в памяти будем считать).
А тут каждый элемент вложен в предыдущий.

Имхо одновязанный список должен выглядеть всё-таки так:

JavaScript
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
"use strict";
 
const e4 = {
  value: 4,
  next: null,
};
 
const e3 = {
  value: 3,
  next: e4,
};
 
const e2 = {
  value: 2,
  next: e3,
};
 
const e1 = {
  value: 1,
  next: e2,
};
 
console.log(e1.value); // 1
console.log(e1.next.value); // 2
console.log(e1.next.next.value); // 3
console.log(e1.next.next.next.value); // 4
Добавлено через 8 минут
Кстати, написанные выше функции будут работать при длине списка в 10 млн. записей?
0
1185 / 755 / 127
Регистрация: 10.03.2012
Сообщений: 4,855
29.09.2023, 10:38  [ТС]
JavaScript
1
2
3
4
5
6
7
8
9
10
11
function printList(list) {
  let tmp = list;
 
  while (tmp) {
    alert(tmp.value);
    tmp = tmp.next;
  }
 
}
 
printList(list);
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function printReverseList(list) {
  let arr = [];
  let tmp = list;
 
  while (tmp) {
    arr.push(tmp.value);
    tmp = tmp.next;
  }
 
  for (let i = arr.length - 1; i >= 0; i--) {
    alert( arr[i] );
  }
}
 
printReverseList(list);
0
 Аватар для klyapa
3503 / 1267 / 429
Регистрация: 24.07.2016
Сообщений: 1,890
29.09.2023, 13:44
Whitecolor, эта задача явно из раздела => рекурсия, и в общем, на сообразительность и понимание стека, а не на просто какое-то решение.
0
1306 / 781 / 190
Регистрация: 19.09.2020
Сообщений: 1,993
29.09.2023, 14:04
Цитата Сообщение от klyapa Посмотреть сообщение
эта задача явно из раздела => рекурсия
106-й списочек обойдешь рекурсией?
0
1185 / 755 / 127
Регистрация: 10.03.2012
Сообщений: 4,855
02.10.2023, 13:09  [ТС]
Цитата Сообщение от klyapa Посмотреть сообщение
из раздела => рекурсия,
Как можно с помощью рекурсии решить?
0
Эксперт JSЭксперт HTML/CSS
 Аватар для krvsa
3809 / 1647 / 428
Регистрация: 14.03.2022
Сообщений: 4,113
02.10.2023, 14:11
Цитата Сообщение от Whitecolor Посмотреть сообщение
Как можно с помощью рекурсии решить?
Тебе это показали выше...
Вывод односвязного списка по возрастанию и в обратном порядке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.10.2023, 14:11
Помогаю со студенческими работами здесь

Рекурсивный метод печати элементов односвязного списка в обратном порядке в столбце
Помогите, пожалуйста, сделать рекурсивный метод печати элементов односвязного списка в обратном порядке в столбце internal class Elem...

Вывести числа между первым и последним односвязного списка в обратном порядке
Добрый вечер! Есть код который выводит односвязный список в обратном порядке, а нужно перевернуть числа односвязного списка между первым и...

Вывод списка в обратном порядке
Друзья, всем привет. Есть такая загвоздка, есть задача: Выведите элементы данного списка в обратном порядке, не изменяя сам список. ...

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

Вывод списка в обратном порядке
У меня есть такая структура: struct list_r { int a; struct list_r *next; }; вводятся два числа, к примеру 123 и 321....


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru