Mavzu Chiziqli ikki bog’lamli ro’yxatlar va ularni dasturda ama
Chiqish: Yakuniy bog'langan ro'yxat:
10–>20–>30–>40–>50–>null
Yuqoridagi ikkala dasturda, C++ va Java-da bizda ro'yxat oldiga, ro'yxat oxiriga va tugunda berilgan ro'yxatlar orasiga tugun qo'shish uchun alohida funksiyalar mavjud. Oxir-oqibat, biz uchta usul yordamida yaratilgan ro'yxatning mazmunini chop etamiz.
№2) O'chirish
Qo'shish kabi, bog'langan ro'yxatdagi tugunni o'chirish ham tugunni o'chirish mumkin bo'lgan turli pozitsiyalarni o'z ichiga oladi. Biz bog'langan ro'yxatdan birinchi tugunni, oxirgi tugunni yoki tasodifiy k-tugunni o'chirib tashlashimiz mumkin. O'chirishdan so'ng, bog'langan ro'yxatni saqlab qolish uchun biz keyingi ko'rsatkichni va bog'langan ro'yxatdagi boshqa ko'rsatkichlarni mos ravishda sozlashimiz kerak.
Keyingi C++ dasturida biz o'chirishning ikkita usulini berdik, ya'ni ro'yxatdagi birinchi tugunni o'chirish va ro'yxatdagi oxirgi tugunni o'chirish. Avval boshga tugunlarni qo'shish orqali ro'yxatni yaratamiz. Keyin ro'yxat tarkibini qo'shgandan va har bir o'chirishdan keyin ko'rsatamiz.
#include usingnamespace std;
/* Link list node */
struct Node {
int data;
struct Node* next;
};
//delete first node in the linked list
Node* deleteFirstNode(struct Node* head)
{
if (head == NULL)
return NULL;
// Move the head pointer to the next node
Node* tempNode = head;
head = head->next;
delete tempNode;
return head;
}
//delete last node from linked list
Node* removeLastNode(struct Node* head)
{
if (head == NULL)
return NULL;
if (head->next == NULL) {
delete head;
return NULL;
}
// first find second last node
Node* second_last = head;