Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C ++ เพื่อลบโหนดแรกในรายการที่เชื่อมโยงโดยลำพัง


รายการที่เชื่อมโยงเป็นโครงสร้างข้อมูลเชิงเส้นที่มีหลายโหนดที่เชื่อมต่อถึงกัน แต่ละโหนดประกอบด้วยสองฟิลด์ – ฟิลด์ข้อมูล และที่อยู่ของโหนดถัดไป

สมมติว่าเรามีรายการที่เชื่อมโยงโดยลำพัง และเราจำเป็นต้องลบโหนดแรกออกจากรายการที่เชื่อมโยงนี้ ตัวอย่างเช่น

อินพุต 1 − 4 → 3 → 2 → 1

ผลผลิต − 3 → 2 → 1 →

คำอธิบาย − '4' เป็นโหนดแรกในรายการเชื่อมโยงที่กำหนดโดยลำพัง หลังจากลบโหนดแรก รายการเชื่อมโยงจะเป็น 3→2→1

อินพุต 2 − 1 → 2 → 3 →

ผลผลิต − 2 → 3 →

คำอธิบาย − หลังจากลบโหนดแรก '1' รายการที่เชื่อมโยงจะเป็น 2 → 3

แนวทางการแก้ปัญหานี้

เริ่มแรกเรามีรายการเชื่อมโยงที่ประกอบด้วยโหนด แต่ละโหนดมีข้อมูลและที่อยู่ไปยังโหนดถัดไป หลังจากใส่ข้อมูลในลิงค์ลิสต์แล้ว เราจะสร้างฟังก์ชั่นเพื่อลบโหนดแรก

ดังนั้น เราจะสร้างตัวชี้ชั่วคราวซึ่งในตอนแรกจะชี้ไปที่ส่วนหัวและย้ายส่วนหัวไปยังโหนดถัดไป ตอนนี้ให้ลบโหนดชั่วคราวและส่งคืนรายการที่เชื่อมโยง

  • ฟังก์ชัน deleteAthead(node*&head) นำตัวชี้ไปที่ส่วนหัวและลบโหนดแรกของรายการที่เชื่อมโยง

  • สร้างตัวชี้ชั่วคราวที่ชี้ไปที่ศีรษะในตอนแรก

  • หัวหน้าย้ายไปยังโหนดถัดไป

  • ลบตัวชี้ชั่วคราว

  • กลับรายการเชื่อมโยง

ตัวอย่าง

#include<iostream>
using namespace std;
int main(){
class node{
   public:
      int data;
      node*next;
      node(int d){
         data=d;
         node*next=NULL;
      }
};
void insertAtFirstNode(node*&head, int data){
   node*n= new node(data);
   n->next= head;
   head=n;
}
void print(node*head){
   while(head!=NULL){
      cout<<head->data<<"->";
      head=head->next;
   }
   cout<<endl;
}
void deleteAtFirst(node*&head){
   if(head==NULL){
      return;
   }
   node*temp=head;
   head= head->next;
   delete temp;
   return;
}
int main(){
   node*head= NULL;
   insertAtFirstNode(head,1);
   insertAtFirstNode(head,2);
   insertAtFirstNode(head,3);
   insertAtFirstNode(head,4);
   deleteAtFirst(head);
   print(head);
}

ผลลัพธ์

การเรียกใช้โค้ดด้านบนจะสร้างผลลัพธ์เป็น

3 → 2 → 1 →

เนื่องจากรายการเชื่อมโยงที่กำหนดคือ 4 → 3 → 2 → 1 → หลังจากลบโหนดแรกซึ่งเป็น 4 รายการที่ถูกเชื่อมโยงจะกลายเป็น 3 → 2 → 1 →