1.鍊錶的建立:
需要乙個頭指標、結點指標、尾指標即可。這裡值得注意的是,建立的過程頭指標是不能變的,而每次插入乙個節點,尾指標都要後移乙個節點(一開始把尾指標指向頭指標),如建立含有n個結點的鍊錶如下**
node *create()
else
pend->next=null;
ps=new node;
}delete ps;
mydelete(&(head));//刪除乙個結點
myinsert(head);//插入乙個結點
return head;
}
2.鍊錶的刪除:鍊錶的刪除首先要先找到你要刪除的結點。刪除分為下面兩種情況:
1刪除鏈首的步驟:
a. p指向鏈首結點;
b. head指向鏈首的下乙個結點
c. 刪除p指向的結點
a刪除非鏈首的結點的步驟:
a. p指向待刪的結點
b. pguard所指向的結點的next成員指向待刪成員的下乙個成員
c. 刪除p所指向的結點
void mydelete(node** head)//此函式為刪除結點的值為number的結點
while(pguard->next&&pguard->next->data!=number)//查詢待刪結點的前乙個結點
pguard=pguard->next;
num=pguard->next;
pguard->next=num->next;
delete num;
return ;
}
3.鍊錶的插入:
鍊錶的插入也是根據head是否改變把它分成兩種情況,插入鏈首和非鏈首,
a. 鏈首情況
1head==null;
2head!=null『
b. 非鏈首情況:
1.將插入結點指向當前結點的下乙個結點
2.將當前結點指向插入結點
注意此處的順序是重要的,如果先將當前結點的next成員修改,則失去與後繼結點的聯絡,插入結點無法找到當前節點的下一結點。
void myinsert(node*head)
if(loc==1)//如果插入在第乙個位置
node * pguard=head;
for(int i=1;i<=loc-2;i++)
pguard=pguard->next;//找出哨兵
num->next=pguard->next;//將插入結點指向當前結點的下乙個結點
pguard->next=num;//將當前結點指向插入結點
return;
}
最後放乙個可以執行的**吧
輸入:第一行輸入建立鍊錶的結點個數
第二行輸入每個結點的值
第三行輸入要刪除的值
第四行輸入要插入的值和插入的位置
輸入:一系列操作後所有結點的值
#includeusing namespace std;
struct node
;void mydelete(node** head);
void myinsert(node*head);
node *create()
else
pend->next=null;
ps=new node;
}delete ps;
mydelete(&(head));//刪除乙個結點
myinsert(head);//插入乙個結點
return head;
}void mydelete(node** head)//此函式為刪除結點的值為5的結點
while(pguard->next&&pguard->next->data!=number)//查詢待刪結點的前乙個結點
pguard=pguard->next;
num=pguard->next;
pguard->next=num->next;
delete num;
return ;
}void myinsert(node*head)
if(loc==1)//如果插入在第乙個位置
node * pguard=head;
for(int i=1;i<=loc-2;i++)
pguard=pguard->next;//找出哨兵
num->next=pguard->next;//將插入結點指向當前結點的下乙個結點
pguard->next=num;//將當前結點指向插入結點
return;
}void showlist(node* head)
cout<
鍊錶建立 插入 刪除
這兩天,拼命理解鍊錶,儘管現在理解還是不夠,但終於把長久以來一直折磨我的鍊錶用c 打出來了。還是有點小小的成就感。以下是 包括鍊錶建立 頭插法和尾插法 插入乙個位置的鍊錶 刪除乙個位置的鍊錶以及整個鍊錶的刪除。define null 0 include using namespace std int...
鍊錶的建立,刪除,插入,
定義結點 結構體型別 定義指向結點的指標變數 必須有頭指標 head,p1,p2 新建結點 malloc函式開闢記憶體 指向如果是第乙個結點,則讓頭指標head指向該結點 若不是第乙個結點,則讓上乙個結點的指標變數指向該結點 最後讓尾結點的指標變數指向null 如 list pre pre next...
鍊錶 建立 插入 刪除 查詢
include include typedef struct node int data struct node next node node createlist 建立乙個單鏈表 printf 建立乙個長度為 n的鍊錶,請輸入 n int n scanf d n node l l node mal...