SlideShare a Scribd company logo
1 of 28
Жагсаалтыг
заагчаар зохион
      байгуулах
Жагсаалтыг заагчаар зохион
        байгуулах
• Тодорхойлолт:Шугаман (дараалсан)
  зохион байгуулалттай, өөр хоорондоо
  холбоотой             элементүүдийн
  олонлогийг жагсаалт гэж үзэж болно.
  Элементийг       нь        жагсаалтын
  зангилаа(node)      гэдэг.     Тухайн
  зангилааны заагч нь дараагийн
  зангилааны хаягийг агуулж байвал
  нэг холбоост жагсаалт гэдэг.
Жагсаалтыг заагчаар зохион
          байгуулах
• Тодорхойлолтоос гарах төсөөлөл нь:
head                                   tail



        5      7       8       9
Жагсаалтыг заагчаар зохион
         байгуулах
• Зурагт харгалзах өгөгдлийн төрөл нь:



     typedef int elem;                          node_t
                                a node
     typedef struct node {
                                  9      data
           elem data;
                                         next
           struct node* next;
      } node_t;
Жагсаалтыг заагчаар зохион
         байгуулах
• Өгөгдлийн төрөл гэж юу? Хаана
  ашиглагдах вэ? Доорх текстийн аль нь
                   өгөгдлийн төрөл вэ?
     typedef int elem;                          node_t
                                a node
     typedef struct node {
                                  9      data
           elem data;
                                         next
           struct node* next;
      } node_t;
Жагсаалтад
элемент нэмэх
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p
}

             5         7   data   8    9
                           next
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p         temp
}

             5         7   data   8    9
                           next
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p         temp
}

             5         7   data   8    9
                           next
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p         temp
}

            5         7   data   8     9
                          next
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p         temp
}

            5         7   data   8     9
                          next
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p         temp
}

             5         7   data   8    9
                           next


                            x
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p         temp
}

             5         7   data   8    9
                           next


                            x
void insert_node(posi p, elem x)
{ posi temp;
 temp = p->next;
 p->next=(posi)malloc(sizeof(list));
 p->next->data=x;
 p->next->next=temp;
               p
}

             5         7          8    9




                            x
p


5       7   x   8   9
Жагсаалтаас
элемент устгах
void delete_node(posi p)
{ posi temp;
  temp=p->next;
  p->next=p->next->next;
  free(temp);
}
               p


           5        7   data   8   9
                        next
void delete_node(posi p)
{ posi temp;
  temp=p->next;
  p->next=p->next->next;
  free(temp);
}
               p        temp


           5        7   data   8   9
                        next
void delete_node(posi p)
{ posi temp;
  temp=p->next;
  p->next=p->next->next;
  free(temp);
}
               p        temp


           5        7   data   8   9
                        next
void delete_node(posi p)
{ posi temp;
  temp=p->next;
  p->next=p->next->next;
  free(temp);
}
               p        temp


           5        7   data   8   9
                        next
void delete_node(posi p)
{ posi temp;
  temp=p->next;
  p->next=p->next->next;
  free(temp);
}
               p        temp


           5        7   data   9
                        next
void delete_node(posi p)
{ posi temp;
  temp=p->next;
  p->next=p->next->next;
  free(temp);
}
               p


           5        7   data   9
                        next
p


5       7   9
Асуулт
• p=MAKENULL(L); үйлдлийн зураглал
  ямар байх вэ?
• Хоосон байхад элемент нэмэх
  зураглал ямар байх вэ?
• Нэг элементтэй байхад элемент
  нэмэх (түүний өмнө ба хойно нь
  нэмэх) зураглал ямар байх вэ?
Асуулт
• Жагсаалтын    элементийг    хоосон
  болтол устгах зураглал ямар байх
  вэ?
• Хоосон болох үед “p” заагчийн утга
  ямар байх вэ?
Даалгавар
   int main(){
    list l; posi p;
    p=Makenull(l);
    insert_node(p,5);
    insert_node(p,15);
    print_list(l);
    p=Next(p);
    insert_node(p,25);
    print_list(l);
    p=Locate(l,5);
    delete_node(p);
    print_list(l);
    system("pause");
   }
• Кодыг зургаар тайлбарлана уу.
Single linked list
Single linked list

More Related Content

What's hot

ЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМ
ЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМ
ЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМAltangerel Bilguun
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10Badral Khurelbaatar
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7Badral Khurelbaatar
 
"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ
"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ
"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬbatnasanb
 
Power point s bolowsruulalt
Power point s bolowsruulaltPower point s bolowsruulalt
Power point s bolowsruulaltdenkhee68
 
хэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмуудхэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмуудTsetsenkhuu Otgonbayar
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргуудBayalagmaa Davaanyam
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4Khuder Altangerel
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3Khuder Altangerel
 
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101   алгоритм программчлал-5 zasvar badral(1)U.cs101   алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)Badral Khurelbaatar
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptologysodhero
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3Badral Khurelbaatar
 
Мэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгжМэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгжTudevdagva Uranchimeg
 
нийгмийн нийтлэг
нийгмийн нийтлэгнийгмийн нийтлэг
нийгмийн нийтлэгtulgaa14
 

What's hot (20)

ЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМ
ЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМ
ЭМНЭЛГИЙН МЭРГЭЖИЛТНИЙ ЛИЦЕНЗИЙН СИСТЕМ
 
U.cs101 алгоритм программчлал-10
U.cs101   алгоритм программчлал-10U.cs101   алгоритм программчлал-10
U.cs101 алгоритм программчлал-10
 
U.cs101 алгоритм программчлал-7
U.cs101   алгоритм программчлал-7U.cs101   алгоритм программчлал-7
U.cs101 алгоритм программчлал-7
 
Лекц №10
Лекц №10Лекц №10
Лекц №10
 
"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ
"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ
"SMART" баг - ЦАЙНЫ ГАЗАРТ УХААЛАГ КАССЫН СИСТЕМ НЭВТРҮҮЛЭХ НЬ
 
Power point s bolowsruulalt
Power point s bolowsruulaltPower point s bolowsruulalt
Power point s bolowsruulalt
 
хэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмуудхэрэглээний програмууд ба системийн програмууд
хэрэглээний програмууд ба системийн програмууд
 
Dundad zuunii philosophi
Dundad zuunii philosophi Dundad zuunii philosophi
Dundad zuunii philosophi
 
9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд9.эрэмбэлэлтийн аргууд
9.эрэмбэлэлтийн аргууд
 
u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4u.cs101 "Алгоритм ба програмчлал" Лекц №4
u.cs101 "Алгоритм ба програмчлал" Лекц №4
 
u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3u.cs101 "Алгоритм ба програмчлал" Лекц №3
u.cs101 "Алгоритм ба програмчлал" Лекц №3
 
Лекц №2 Word программын тухай
Лекц №2  Word программын тухайЛекц №2  Word программын тухай
Лекц №2 Word программын тухай
 
Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12Өгөгдлийн бүтэц 12
Өгөгдлийн бүтэц 12
 
U.cs101 алгоритм программчлал-5 zasvar badral(1)
U.cs101   алгоритм программчлал-5 zasvar badral(1)U.cs101   алгоритм программчлал-5 zasvar badral(1)
U.cs101 алгоритм программчлал-5 zasvar badral(1)
 
Лекц 6 - 7
Лекц 6 - 7Лекц 6 - 7
Лекц 6 - 7
 
Криптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - CryptologyКриптологийн тухай ойлголт - Cryptology
Криптологийн тухай ойлголт - Cryptology
 
U.cs101 алгоритм программчлал-3
U.cs101   алгоритм программчлал-3U.cs101   алгоритм программчлал-3
U.cs101 алгоритм программчлал-3
 
Мэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгжМэдээлэл, мэдээллийг хэмжих нэгж
Мэдээлэл, мэдээллийг хэмжих нэгж
 
нийгмийн нийтлэг
нийгмийн нийтлэгнийгмийн нийтлэг
нийгмийн нийтлэг
 
Prog didacticsok
Prog didacticsokProg didacticsok
Prog didacticsok
 

Single linked list

  • 2. Жагсаалтыг заагчаар зохион байгуулах • Тодорхойлолт:Шугаман (дараалсан) зохион байгуулалттай, өөр хоорондоо холбоотой элементүүдийн олонлогийг жагсаалт гэж үзэж болно. Элементийг нь жагсаалтын зангилаа(node) гэдэг. Тухайн зангилааны заагч нь дараагийн зангилааны хаягийг агуулж байвал нэг холбоост жагсаалт гэдэг.
  • 3. Жагсаалтыг заагчаар зохион байгуулах • Тодорхойлолтоос гарах төсөөлөл нь: head tail 5 7 8 9
  • 4. Жагсаалтыг заагчаар зохион байгуулах • Зурагт харгалзах өгөгдлийн төрөл нь: typedef int elem; node_t a node typedef struct node { 9 data elem data; next struct node* next; } node_t;
  • 5. Жагсаалтыг заагчаар зохион байгуулах • Өгөгдлийн төрөл гэж юу? Хаана ашиглагдах вэ? Доорх текстийн аль нь өгөгдлийн төрөл вэ? typedef int elem; node_t a node typedef struct node { 9 data elem data; next struct node* next; } node_t;
  • 7. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p } 5 7 data 8 9 next
  • 8. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p temp } 5 7 data 8 9 next
  • 9. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p temp } 5 7 data 8 9 next
  • 10. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p temp } 5 7 data 8 9 next
  • 11. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p temp } 5 7 data 8 9 next
  • 12. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p temp } 5 7 data 8 9 next x
  • 13. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p temp } 5 7 data 8 9 next x
  • 14. void insert_node(posi p, elem x) { posi temp; temp = p->next; p->next=(posi)malloc(sizeof(list)); p->next->data=x; p->next->next=temp; p } 5 7 8 9 x
  • 15. p 5 7 x 8 9
  • 17. void delete_node(posi p) { posi temp; temp=p->next; p->next=p->next->next; free(temp); } p 5 7 data 8 9 next
  • 18. void delete_node(posi p) { posi temp; temp=p->next; p->next=p->next->next; free(temp); } p temp 5 7 data 8 9 next
  • 19. void delete_node(posi p) { posi temp; temp=p->next; p->next=p->next->next; free(temp); } p temp 5 7 data 8 9 next
  • 20. void delete_node(posi p) { posi temp; temp=p->next; p->next=p->next->next; free(temp); } p temp 5 7 data 8 9 next
  • 21. void delete_node(posi p) { posi temp; temp=p->next; p->next=p->next->next; free(temp); } p temp 5 7 data 9 next
  • 22. void delete_node(posi p) { posi temp; temp=p->next; p->next=p->next->next; free(temp); } p 5 7 data 9 next
  • 23. p 5 7 9
  • 24. Асуулт • p=MAKENULL(L); үйлдлийн зураглал ямар байх вэ? • Хоосон байхад элемент нэмэх зураглал ямар байх вэ? • Нэг элементтэй байхад элемент нэмэх (түүний өмнө ба хойно нь нэмэх) зураглал ямар байх вэ?
  • 25. Асуулт • Жагсаалтын элементийг хоосон болтол устгах зураглал ямар байх вэ? • Хоосон болох үед “p” заагчийн утга ямар байх вэ?
  • 26. Даалгавар int main(){ list l; posi p; p=Makenull(l); insert_node(p,5); insert_node(p,15); print_list(l); p=Next(p); insert_node(p,25); print_list(l); p=Locate(l,5); delete_node(p); print_list(l); system("pause"); } • Кодыг зургаар тайлбарлана уу.