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 →
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP