Բովանդակություն:
Video: Ինչպե՞ս ջնջել շրջանաձև կապակցված ցուցակը:
2024 Հեղինակ: Lynn Donovan | [email protected]. Վերջին փոփոխված: 2023-12-15 23:48
Ջնջում շրջանաձեւ կապակցված ցանկից
- Եթե ցուցակը դատարկ չէ, ապա մենք սահմանում ենք երկու ցուցիչ curr և prev և սկզբնավորում ենք ցուցիչի curr-ը գլխային հանգույցով:
- Անցնելով ցուցակը օգտագործելով curr-ը ջնջվող հանգույցը գտնելու համար և մինչ curr-ը հաջորդ հանգույց տեղափոխելը, ամեն անգամ սահմանել prev = curr:
- Եթե հանգույցը գտնվել է, ստուգեք՝ արդյոք դա միակ հանգույցն է ցուցակը .
Այս կերպ ինչպե՞ս եք ջնջում շրջանաձև կապակցված ցանկի վերջին հանգույցը:
Circular Linked List-ի վերջին հանգույցի ջնջում
- Վերցրեք երկու ընթացիկ և նախորդ ցուցիչ և անցեք ցանկը:
- Տեղափոխեք երկու ցուցիչներն այնպես, որ նախորդի հաջորդը միշտ ուղղված լինի ընթացիկին:
- Երբ ցուցիչի հոսանքը հասնում է վերջին հանգույցին, արեք հետևյալը.
Բացի այդ, ինչպե՞ս ջնջել տարրը կապված ցանկից: Ցանկից որոշակի տարրը ջնջելու մի քանի քայլ կա.
- Գտեք հանգույցը տարրի հետ (եթե այն գոյություն ունի):
- Հեռացրեք այդ հանգույցը:
- Կրկին միացրեք կապված ցանկը:
- Թարմացրեք սկզբի հղումը (անհրաժեշտության դեպքում):
Համապատասխանաբար, ինչպե՞ս եք հակադարձում շրջանաձև կապակցված ցուցակը:
Ստորև ներկայացված է շրջանաձև կապակցված ցուցակը հակադարձելու քայլ առ քայլ տրամաբանություն:
- Նախաձեռնեք երեք ցուցիչ փոփոխականներ, վերջին = գլուխ, cur = head->next և prev = head:
- Տեղափոխեք գլխի հանգույցը առաջ, այսինքն՝ գլուխ = գլուխ-> հաջորդ;
- Կապել ընթացիկ հանգույցը նախորդ հանգույցի հետ, այսինքն՝ cur->next = prev;
- Նախորդ հանգույցը դարձրեք որպես ընթացիկ հանգույց, այսինքն՝ prev = cur;
Ի՞նչ է շրջանաձև կրկնակի կապակցված ցուցակը:
Շրջանաձև կրկնակի կապված ցուցակ տվյալների կառուցվածքի ավելի բարդ տեսակ է, որտեղ հանգույցը պարունակում է ցուցիչներ դեպի իր նախորդ հանգույցը, ինչպես նաև հաջորդ հանգույցը: -ի առաջին հանգույցը ցուցակը պարունակում է նաև վերջին հանգույցի հասցեն իր նախորդ ցուցիչում: Ա շրջանաձև կրկնակի կապակցված ցուցակ ցույց է տրված հետևյալ նկարում.
Խորհուրդ ենք տալիս:
Ինչպե՞ս կարող եմ դասավորել կապակցված ցուցակը այբբենական կարգով:
Java-ում LinkedList-ի տողերի տեսակավորումը հեշտ է: Դուք կարող եք տեսակավորել LinkedList տողը աճման այբբենական կարգով՝ օգտագործելով sort(List list): Դուք կարող եք նաև տեսակավորել LinkedList տողը նվազման այբբենական կարգով՝ օգտագործելով sort(List list, Comparator c)
Ինչպե՞ս է կրկնակի կապակցված ցուցակը DLL-ն համեմատվում մեկ կապակցված ցուցակի SLL-ի հետ):
Կրկնակի կապակցված ցուցակի ներածություն. Կրկնակի կապակցված ցուցակը (DLL) պարունակում է լրացուցիչ ցուցիչ, որը սովորաբար կոչվում է նախորդ ցուցիչ, հաջորդ ցուցիչի և տվյալների հետ միասին, որոնք կան առանձին կապակցված ցանկում: SLL-ն ունի հանգույցներ միայն տվյալների դաշտով և հաջորդ հղման դաշտով: DLL-ն ավելի շատ հիշողություն է զբաղեցնում, քան SLL-ը, քանի որ այն ունի 3 դաշտ
Ինչպե՞ս կարող եմ տեսակավորել առանձին կապակցված ցուցակը:
Ստորև բերված է կապակցված ցուցակի ներդիրի տեսակավորման պարզ ալգորիթմ: 1) Ստեղծեք դատարկ տեսակավորված (կամ արդյունքների) ցուցակ 2) Անցեք տրված ցուցակով, հետևեք յուրաքանչյուր հանգույցի համար: ա) Տեղադրեք ընթացիկ հանգույցը տեսակավորված եղանակով տեսակավորված կամ արդյունքների ցանկում: 3) Փոխել տրված կապակցված ցուցակի գլուխը տեսակավորված (կամ արդյունքի) ցուցակի գլխին
Ո՞րն է տարբերությունը կրկնակի կապակցված ցուցակի և շրջանաձև կապակցված ցուցակի միջև:
Շրջանաձև կապակցված ցուցակն այն ցուցակն է, որտեղ կան նոստարտ կամ ավարտական հանգույցներ, բայց փոխարենը դրանք հետևում են շրջանաձև օրինաչափությանը: Կրկնակի կապակցված ցուցակն այն ցուցակն է, որտեղ յուրաքանչյուր հանգույց ուղղված է ոչ միայն հաջորդ հանգույցին, այլև նախորդ հանգույցին
Ի՞նչ է շրջանաձև կրկնակի կապակցված ցուցակը:
Շրջանաձև կրկնակի կապակցված ցուցակը տվյալների կառուցվածքի ավելի բարդ տեսակ է, որտեղ հանգույցը պարունակում է ցուցիչներ դեպի իր նախորդ հանգույցը, ինչպես նաև հաջորդ հանգույցը: Ցանկի առաջին հանգույցը պարունակում է նաև իր նախորդ ցուցիչի վերջին հանգույցի հասցեն: Շրջանաձև կրկնակի կապակցված ցուցակը ներկայացված է հետևյալ նկարում