• Foydalanilgan adabiyotlar
  • Funksiya olib tashlash (Tugun tugun) agar




    Download 182,3 Kb.
    bet6/6
    Sana12.01.2024
    Hajmi182,3 Kb.
    #135428
    1   2   3   4   5   6
    Bog'liq
    Obro\'yev Ezozbek

    Funksiya olib tashlash (Tugun tugun) agar tugun ≠ bekor va ro'yxatning kattaligi> 1 o'chirildi Ma'lumotlar: = tugun.data tugun.data: = tugun.next.data tugun.next = tugun.next.next qaytish olib tashlangan ma'lumotlar
    Tugunlarning massivlari yordamida bog'langan ro'yxatlar
    Hech qanday turini qo'llab-quvvatlamaydigan tillar ma'lumotnoma ko'rsatkichlarni qator indekslari bilan almashtirish orqali hali ham havolalar yaratishi mumkin. Yondashuv qator ning yozuvlar, bu erda har bir yozuv massivda keyingi (va ehtimol oldingi) tugunning indeksini ko'rsatadigan butun sonli maydonlarga ega. Massivdagi barcha tugunlardan foydalanish kerak emas. Agar yozuvlar ham qo'llab-quvvatlanmasa, parallel massivlar o'rniga tez-tez ishlatilishi mumkin.
    Masalan, ko'rsatgich o'rniga massivlardan foydalaniladigan quyidagi bog'langan ro'yxat yozuvini ko'rib chiqing:
    yozuv Kirish { tamsayı Keyingisi; // massivdagi keyingi yozuvning ko'rsatkichi tamsayı oldingi; // oldingi yozuv (agar ikkita bog'langan bo'lsa) mag'lubiyat ism; haqiqiy qoldiq;}
    Bog'langan ro'yxatni ushbu tuzilmalar qatorini yaratish va birinchi element indeksini saqlash uchun butun o'zgaruvchini yaratish mumkin.
    Elementlar orasidagi bog'lanishlar keyingi (yoki oldingi) katakning qator indeksini berilgan element ichida Keyingi yoki Oldingi maydoniga joylashtirish orqali hosil bo'ladi. Masalan:

    Indeks

    Keyingisi

    Oldingi

    Ism

    Balans

    0

    1

    4

    Jons, Jon

    123.45

    1

    −1

    0

    Smit, Jozef

    234.56

    2 (listHead)

    4

    −1

    Adams, Odam

    0.00

    3







    E'tibor qilmang, Ignatius

    999.99

    4

    0

    2

    Yana biri Anita

    876.54

    5













    6













    7













    Yuqoridagi misolda, ListHead ro'yxatdagi birinchi yozuvning joylashuvi 2 ga o'rnatiladi. E'tibor bering, 3 va 5 dan 7 gacha bo'lgan yozuvlar ro'yxatning bir qismi emas. Ushbu katakchalar ro'yxatdagi barcha qo'shimchalar uchun mavjud. Yaratish orqali ListFree tamsayı o'zgaruvchisi, a bepul ro'yxat mavjud bo'lgan hujayralarni kuzatib borish uchun yaratilishi mumkin. Agar barcha yozuvlar ishlatilayotgan bo'lsa, yangi yozuvlar ro'yxatda saqlanishidan oldin massivning kattalashtirilishi yoki ba'zi elementlarning o'chirilishi kerak edi.
    Quyidagi kod ro'yxatni bosib o'tib, nomlar va hisob balansini ko'rsatishi mumkin:


    Chiziqli Bog'langan Ma'lumotlar Tuzilmalari:


    Chiziqli bog'langan ma'lumotlar tuzilmalari, bir-biriga joylashgan ma'lumotlarni ifodalash uchun ishlatiladigan eng oddiy strukturalardan biridir. Ushbu tuzilma elementlar orasida o'zaro bog'lanishni saqlaydi. Python tilidagi chiziqli bog'langan ma'lumotlar tuzilmalari ro'yxat (list) orqali eng ommalashgan bo'lib, boshqa tuzilmalar ham ishlatiladi.


    Chiziqli Bog'langan Ma'lumotlar Tuzilmalari Misollari:


    1. Ro'yxat (List):
    - Ro'yxat, chiziqli bog'langan ma'lumotlar tuzilmalari eng ommalashgan va mashhur tuzilmalardan biridir.
    - Misol:


    ```python
    my_list = [1, 2, 3, 'four', 5.0]
    ```


    2. O'zgaruvchi Tartiblash (Tuple):
    - Tuple o'zgartirib bo'lmaydigan ro'yxatdir.
    - Misol:


    ```python
    my_tuple = (1, 2, 'three', 4.0)
    ```


    Stek (Stack) Misoli:


    Stek, ma'lumotlarni LIFO (Last In, First Out) tartibda saqlaydigan tuzilma. Stekga yangi element qo'shilganda, u eng yuqoridagi element bo'lib qoladi.


    ```python
    class Stack:
    def __init__(self):
    self.items = []


    def is_empty(self):
    return len(self.items) == 0


    def push(self, item):
    self.items.append(item)


    def pop(self):
    if not self.is_empty():
    return self.items.pop()


    def peek(self):
    if not self.is_empty():
    return self.items[-1]


    def size(self):
    return len(self.items)


    # Stekni sinov qilamiz
    stack = Stack()
    stack.push(1)
    stack.push(2)
    stack.push(3)


    print(stack.pop()) # 3
    print(stack.peek()) # 2
    print(stack.size()) # 2
    ```


    Dek (Deque) Misoli:


    Dek, double-ended queue (o'ng va chap tomonlari orqali boshqa ma'lumotlar qo'shish va olish imkoniyatiga ega) tuzilmasidir.


    ```python
    from collections import deque


    # Dekni sinov qilamiz
    deque_data = deque()
    deque_data.append(1) # O'ng tomondan qo'shish
    deque_data.appendleft(2) # Chap tomondan qo'shish
    deque_data.extend([3, 4, 5]) # Ro'yxatni o'ng tomondan qo'shish
    deque_data.extendleft([6, 7, 8]) # Ro'yxatni chap tomondan qo'shish


    print(deque_data.pop()) # 5 (O'ngdan olish)
    print(deque_data.popleft()) # 8 (Chapdan olish)
    print(deque_data) # deque([7, 6, 2, 1, 3, 4])
    ```


    Navbat (Queue) Misoli:


    Navbat, ma'lumotlarni FIFO (First In, First Out) tartibda saqlaydigan tuzilma.


    ```python
    class Queue:
    def __init__(self):
    self.items = []


    def is_empty(self):
    return len(self.items) == 0


    def enq(self, item):
    self.items.insert(0, item)


    def deq(self):
    if not self.is_empty():
    return self.items.pop()


    def size(self):
    return len(self.items)


    # Navbatni sinov qilamiz
    queue = Queue()
    queue.enq(1)
    queue.enq(2)
    queue.enq(3)


    print(queue.deq()) # 1
    print(queue.size()) # 2
    ```




    Ushbu misollar, chiziqli bog'langan ma'lumotlar tuzilmalari va ulardan foydalanishning qisqa misollardan iboratligini ko'rsatadi.


    Foydalanilgan adabiyotlar:

    1. [RU] Алфред В. Ахо., Джон Э. Хопкрофт, Джефри Д. Ульман. Структура данных и алгоритмы. //Учеб.пос., М.: Изд.дом: "Вильямс", 2000, — 384 с.

    2. [EN] Adam Drozdek. Data structures and algorithms in C++. Fourth edition.Cengage Learning, 2013.

    3. [UZ] Narzullaev U.X., Qarshiev A.B., Boynazarov I.M. Ma’lumotlar tuzilmasi va algoritmlar. //O’quv qo’llanma. Toshkent: Tafakkur nashriyoti, 2013 y. – 192 b.

    4. [RU] Лойко В.И. Структуры и алгоритмы обработки данных. Учебное пособие для вузов. - Краснодар: КубГАУ. 2000. - 261 с., ил.

    Download 182,3 Kb.
    1   2   3   4   5   6




    Download 182,3 Kb.

    Bosh sahifa
    Aloqalar

        Bosh sahifa



    Funksiya olib tashlash (Tugun tugun) agar

    Download 182,3 Kb.