Связный список

Свя́зный спи́сок — базовая динамическая структура данных в информатике, состоящая из узлов, содержащих данные и ссылки («связки») на следующий и/или предыдущий узел списка.[1] Принципиальным преимуществом перед массивом является структурная гибкость: порядок элементов связного списка может не совпадать с порядком расположения элементов данных в памяти компьютера[2], а порядок обхода списка всегда явно задаётся его внутренними связями.

Виды связных списков

Линейный связный список

Односвязный список (однонаправленный связный список)

Разновидность связного списка — односвязный список, содержащий 3 элемента

Линейный однонаправленный список — это структура данных, состоящая из элементов одного типа, связанных между собой последовательно посредством указателей. Каждый элемент списка имеет указатель на следующий элемент. Последний элемент списка указывает на NULL. Элемент, на который нет указателя, является первым (головным) элементом списка. Здесь ссылка в каждом узле указывает на следующий узел в списке. В односвязном списке можно передвигаться только в сторону конца списка. Узнать адрес предыдущего элемента, опираясь на содержимое текущего узла, невозможно.

В информатике линейный список обычно определяется как абстрактный тип данных (АТД), формализующий понятие упорядоченной коллекции данных. На практике линейные списки обычно реализуются при помощи массивов и связных списков. Иногда термин «список» неформально используется также как синоним понятия «связный список». К примеру, АТД нетипизированного изменяемого списка может быть определён как набор из конструктора и основных операций:

  • Операция, проверяющая список на пустоту.
  • Три операции добавления объекта в список (в начало, конец или внутрь после любого (n-го) элемента списка);
  • Операция, вычисляющая первый (головной) элемент списка;
  • Операция доступа к списку, состоящему из всех элементов исходного списка, кроме первого.

Характеристики

  • Длина списка. Количество элементов в списке.
  • Списки могут быть типизированными или нетипизированными. Если список типизирован, то тип его элементов задан, и все его элементы должны иметь типы, совместимые с заданным типом элементов списка. Чаще списки типизированы.
  • Список может быть сортированным или несортированным.
  • В зависимости от реализации может быть возможен произвольный доступ к элементам списка.

Односвязный список в языках программирования

Си

struct list
{
  int field; // поле данных
  struct list *next; // указатель на следующий элемент
};

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

struct list* l1 = (struct list*)malloc(sizeof(struct list));
l1->field = 1;
l1->next = (struct list*)malloc(sizeof(struct list));
l1->next->field = 2;
l1->next->next = (struct list*)malloc(sizeof(struct list));
/* и т.д. */

Двусвязный список (двунаправленный связный список)

Здесь ссылки в каждом узле указывают на предыдущий и на последующий узел в списке. Как и односвязный список, двусвязный допускает только последовательный доступ к элементам, но при этом дает возможность перемещения в обе стороны. В этом списке проще производить удаление и перестановку элементов, так как легко доступны адреса тех элементов списка, указатели которых направлены на изменяемый элемент.

XOR-связный список

Используется редко.

Кольцевой связный список

Разновидностью связных списков является кольцевой (циклический, замкнутый) список. Он тоже может быть односвязным или двусвязным. Последний элемент кольцевого списка содержит указатель на первый, а первый (в случае двусвязного списка) — на последний.

Односвязный кольцевой список
Односвязный кольцевой список

Как правило, такая структура реализуется на базе линейного списка. С каждым кольцевым списком дополнительно хранится указатель на первый элемент. В этом списке ссылки на NULL не встречается.

Также существуют циклические списки с выделенным головным элементом, облегчающие полный проход через список.

Список с пропусками

Развёрнутый связный список

Преимущества

  • эффективное (за константное время) добавление и удаление элементов
  • размер ограничен только объёмом памяти компьютера и разрядностью указателей
  • динамическое добавление и удаление элементов

Недостатки

Недостатки связных списков вытекают из их главного свойства — последовательного доступа к данным:

  • сложность прямого доступа к элементу, а именно определения физического адреса по его индексу (порядковому номеру) в списке
  • на поля-указатели (указатели на следующий и предыдущий элемент) расходуется дополнительная память (в массивах, например, указатели не нужны)
  • некоторые операции со списками медленнее, чем с массивами, так как к произвольному элементу списка можно обратиться, только пройдя все предшествующие ему элементы
  • соседние элементы списка могут быть распределены в памяти нелокально, что снизит эффективность кэширования данных в процессоре
  • над связными списками, по сравнению с массивами, гораздо труднее (хоть и возможно) производить параллельные векторные операции, такие, как вычисление суммы: накладные расходы на перебор элементов снижают эффективность распараллеливания

См. также

Примечания

  1. Cormen, Leiserson, Rivest, and Stein. Introduction to Algorithms, 2nd edition. The MIT Press, 2001. ISBN 0-262-03293-7
  2. Выравнивание данных

Read other articles:

الرميل المرس تقسيم إداري البلد المغرب  الجهة الرباط سلا القنيطرة الإقليم سيدي قاسم الدائرة الشراردة الجماعة القروية زيرارة المشيخة مشرع الصفاء السكان التعداد السكاني 127 نسمة (إحصاء 2004)   • عدد الأسر 24 معلومات أخرى التوقيت ت ع م±00:00 (توقيت قياسي)[1]،  وت ع م+01:00 (توقي

 

Tencent Video / WeTVBahasaMandarinSektorEntertainmentProdukMedia siaran Video sesuai permintaanPerusahaan indukTencentSitus webv.qq.com Tencent Video (Hanzi sederhana: 腾讯视频; Hanzi tradisional: 騰訊視頻; Pinyin: Téngxùn Shìpín) adalah sebuah situs web siaran video Tiongkok milik Tencent. Pada Maret 2019, situs tersebut memiliki lebih dari 900 juta pengguna aktif bulanan daring, dan 89 juta pelanggan.[1] Referensi ^ (Inggris) Tencent Video nearly reached 89 m...

 

Maharaja of Travancore from 1829–1846 This article is about the king from the royal dynasty of Travancore. For the 1987 Indian film, see Swathi Thirunal (film). Swathi Thirunal Rama Varma of TravancoreMaharajah of TravancoreReign1813– 26 December 1846Coronation1813RegentGowri Parvati Bayi (1815–1829)SuccessorUthram ThirunalBorn(1813-04-16)16 April 1813TravancoreDied27 December 1846(1846-12-27) (aged 33)Trivandrum(Travancore)SpouseThiruvattar Ammachi Panapillai Amma Narayani Pillai,...

Dieser Artikel behandelt eine Gottheit; zum polnischen Musiker siehe Adam Darski. Darstellung Nergals im hethitischen Felsheiligtum Yazılıkaya. Nergal (sumerisch EN-ERI-GAL, Nerigal, akkadisch dIGI, Nergal) ist eine Gottheit der sumerisch-akkadischen, babylonischen und assyrischen Religion und Vorbild und Bestandteil anderer Gottheiten anderer altorientalischer Völker. Nergal ist der Gott der Unterwelt Kurnugia. Nergal verkörpert die vernichtende Sonnenhitze, so dass ihm Brände und Krank...

 

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (مايو 2023) الإسكندرية للطيران   إياتاXH إيكاوKHH رمز النداء- تاريخ الإنشاء 2006 الجنسية مصر  التوقف عن النشاط 2007 المط...

 

Seorang karyawan sedang menghitung gajinya di depan kas pembayaran Kompensasi merupakan segala sesuatu yang diterima dapat berupa fisik maupun non fisik dan harus dihitung dan diberikan kepada seseorang yang umumnya merupakan objek yang dikecualikan dari pajak pendapatan.[1] Kompensasi merupakan hal yang kompleks dan sulit, karena didalamnya melibatkan dasar kelayakan, logika, rasional, dan dapat dipertanggungjawabkan serta menyangkut faktor emosional dari aspek tenaga kerja.[1 ...

1972 compilation album by The BeatlesThe Essential BeatlesCompilation album by The BeatlesReleased2 February 1972[1]Recorded1962–1969,EMI and Apple studios, LondonGenreRock and rollLanguageEnglishLabelAppleProducerGeorge Martin and Phil SpectorThe Beatles Australian chronology Let It Be(1970) The Essential Beatles(1972) The Beatles' Australian 10th Anniversary 1963-1973 Souvenir Presentation The Beatles Greatest Hits Volumes 1 and 2(1973) The Essential Beatles is a greatest ...

 

Die Konkordienformel (lateinisch formula concordiae, Eintrachtsformel, auch das Bergische Buch) ist die letzte Bekenntnisschrift der lutherischen Kirche. Sie entstand 1577 auf Veranlassung des Kurfürsten August von Sachsen. Inhaltsverzeichnis 1 Geschichte 2 Inhalt 3 Artikel der Konkordienformel 4 Siehe auch 5 Literatur 6 Weblinks 7 Einzelnachweise Geschichte Die Konkordienformel sollte die Zerwürfnisse beilegen, die nach Martin Luthers Tod 1546 innerhalb der evangelischen Territorien dadurc...

 

Multinational fast food company Yum China Holdings, Inc.TypePublicTraded asNYSE: YUMCSEHK: 9987ISINUS98850P1093IndustryRestaurantsPredecessorYum! Brands FoundedNovember 1, 2016 (2016-11-01)HeadquartersShanghai, ChinaNumber of locations12,947 (2022)[1]Area servedChina Little Sheep: Canada, Japan, Indonesia, United StatesKey peopleJoey Wat, CEORevenue US$9.569 billion (2022)[2]Operating income US$629 million (2022)[2]Net income US$442 millio...

South Korean badminton player In this Korean name, the family name is Kim. Badminton playerKim Min-jungPersonal informationCountrySouth KoreaBorn (1986-07-29) 29 July 1986 (age 37)Jeju, South KoreaHeight1.68 m (5 ft 6 in)Weight63 kg (139 lb)HandednessRightWomen's & mixed doublesHighest ranking2 (WD)11 (XD) Medal record Women's badminton Representing  South Korea World Cup 2005 Yiyang Women's doubles Sudirman Cup 2009 Guangzhou Mixed team 2011 Qingdao Mix...

 

American author (1963–2021) This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Sanyika Shakur – news · newspapers · books · scholar · JSTOR (June 2021) (Learn how and when to remove this template message) Sanyika Shakur2007 mugshotBornKody Dejohn Scott(1963-11-13)November 13, 1963Los Angeles, California, U.S....

 

1946 film by Lew Landers Hot CargoTheatrical release posterDirected byLew LandersScreenplay byDaniel MainwaringProduced byWilliam H. PineWilliam C. ThomasStarringWilliam GarganJean RogersPhillip ReedLarry YoungHarry CordingWill WrightCinematographyFred Jackman Jr.Edited byHenry AdamsHoward A. SmithMusic byAlexander LaszloProductioncompanyPine-Thomas ProductionsDistributed byParamount PicturesRelease date June 28, 1946 (1946-06-28) Running time57 minutesCountryUnited StatesLangu...

Chinese-born filmmaker (born 1982) Chloé ZhaoZhao in 2019BornZhao Ting (1982-03-31) 31 March 1982 (age 41)Beijing, ChinaEducationMount Holyoke College (BA)New York University (MFA)OccupationsFilm directorscreenwriterfilm producerfilm editorYears active2008–presentChinese nameSimplified Chinese赵婷Traditional Chinese趙婷TranscriptionsStandard MandarinHanyu PinyinZhào TíngWade–GilesChao4 T'ing2IPA[ʈʂâʊ tʰǐŋ] Chloé Zhao (born Zhao Ting;[a]...

 

British express passenger train This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (May 2011) (Learn how and when to remove this template message) Cornish Riviera ExpressOverviewService typePassenger trainFirst service1 July 1904Current operator(s)Great Western RailwayFormer operator(s) InterCity Great Western British Rail Great Western Railway RouteTerminiLondon...

 

Irish-bred Thoroughbred racehorse (2018–2023) Creative ForceRacing silks of GodolphinSireDubawiGrandsireDubai MillenniumDamChoose MeDamsireChoisirSexGeldingFoaled(2018-03-30)30 March 2018[1]Died17 May 2023(2023-05-17) (aged 5)CountryIrelandColourChestnutBreederOwenstown BloodstockOwnerGodolphinTrainerCharlie ApplebyRecord10: 6-1-0Earnings£393,449Major winsCarnarvon Stakes (2021)Jersey Stakes (2021)British Champions Sprint Stakes (2021) Creative Force (30 March 2018 – 17 May ...

Indian television actress This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: So...

 

الجبايش الجبايش قضاء الجبايش في محافظة ذي قار اللقب الجبايش أم الأهوار تاريخ التأسيس 1959 (منذ 65 سنة) تقسيم إداري البلد  العراق[1] المحافظة محافظة ذي قار نوع المنطقة قضاء المسؤولون قائممقامية بديع الخيون خصائص جغرافية إحداثيات 31°N 47°E / 31°N 47°E / 31; 47  المسا...

 

The International law bearing on issues of Arab–Israeli conflict, which became a major arena of regional and international tension since the birth of Israel in 1948, resulting in several disputes between a number of Arab countries and Israel. There is an international consensus that some of the actions of the states involved in the Arab–Israeli conflict violate international law, but some of the involved states dispute this. In the Six-Day War in 1967, Israel pre-empted what many Israeli...

Fetal and neonatal alloimmune blood condition Not to be confused with Hemorrhagic disease of the newborn. Medical conditionHemolytic disease of the newbornOther namesHDNSpecialtyPediatrics, immunohaematology Complicationsheart failure, splenomegaly Hemolytic disease of the newborn, also known as hemolytic disease of the fetus and newborn, HDN, HDFN, or erythroblastosis fetalis,[1][2] is an alloimmune condition that develops in a fetus at or around birth, when the IgG mole...

 

This article is about the 2016 game. For the 2017 game, see Cobalt WASD. For other uses, see Cobalt (disambiguation). 2016 video game 2016 video gameCobaltDeveloper(s)Oxeye Game StudioPublisher(s)Mojang Studios[2]Composer(s)Mattias Häggström GerdtPlatform(s)Microsoft WindowsXbox 360[3]Xbox One[3]Release2 February 2016[1]Genre(s)ActionMode(s)Single-player, multiplayer Cobalt is an action side-scrolling video game developed by Oxeye Game Studio and published b...

 

Strategi Solo vs Squad di Free Fire: Cara Menang Mudah!