寒假專案1-動態連結串列體驗(改造)(4)
/*
* Copyright (c) 2014, 煙臺大學計算機學院
* All rights reserved.
* 檔名稱:test.cpp
* 作 者:劉暢
* 完成日期:2015 年 1 月 22 日
* 版 本 號:v1.0
*
* 問題描述:改造博文示例中的連結串列。
* 輸入描述:輸入n(n為結點資料)。
* 程式輸出:輸出動態連結串列
(4)編寫函式delete_node(int x),刪除結點值為x的結點。
#include <iostream>
#include <cstdio>
using namespace std;
struct Node
{
int data; //結點的資料
struct Node *next; //指向下一個結點
};
Node *head=NULL; //將連結串列頭定義為全域性變數,以便後續操作
void make_list2(); //建立連結串列
void out_list(); //輸出連結串列
void delete_node(int x); //刪除x結點
int main()
{
int x;
cin>>x;
make_list2();
out_list();
delete_node(x);
out_list();
return 0;
}
void make_list2()
{
int n;
Node *p,*q; //p用於指向新建立的結點, q指向連結串列尾部
cout<<"輸入若干正數(以0或一個負數結束)建立連結串列:"<<endl;
cin>>n;
while(n>0)
{
p=new Node; //建立一個新結點
p->data=n; //將n放入新結點的資料成員中
p->next=NULL; //將指標P指向的next置空
if(head==NULL)
head=p;
else
q->next=p;
q=p; //將p鏈入表尾
cin>>n;
}
return;
}
void out_list()
{
Node *p=head;
cout<<"連結串列中的資料為:"<<endl;
while (p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
return;
}
void delete_node(int x)
{
Node *p,*q;
if (head==NULL)
cout<<"空連結串列,無法刪除。"<<endl;
else
{
while (head!=NULL&&head->data==x)
{
p=head;
head=head->next;
delete p;
}
if (head!=NULL)
{
p=head;
q=p->next;
while (q!=NULL)
{
if (q->data==x)
{
p->next=q->next;
delete q;
}
else
{
p=q;
}
q=p->next;
}
}
cout<<"已更新連結串列..."<<endl;
}
return;
}
執行結果:
相關文章
- 寒假專案1-動態連結串列體驗(改造)(1)
- 寒假專案1-動態連結串列體驗(改造)(2)
- 寒假專案1-動態連結串列體驗(改造)(3)
- 寒假專案1-動態連結串列體驗(改造)(5)
- 寒假專案1-動態連結串列體驗(改造)(6)
- 寒假專案1-動態連結串列體驗(示例)
- 連結串列4: 迴圈連結串列
- 關於動態連結串列的理解
- 動態連結串列的建立(程式碼)
- 寒假專案4-點與距離
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 寒假專案5-讀懂“共同體"
- 連結串列專題——面試中常見的連結串列問題面試
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- 統計學生資訊(使用動態連結串列完成)
- 資料結構實驗之連結串列四:有序連結串列的歸併資料結構
- 連結串列-雙向連結串列
- 連結串列-迴圈連結串列
- 第四周 專案一 建立單連結串列
- Spark 雜記1-專案使用經驗Spark
- 連結串列面試題(二)---連結串列逆序(連結串列反轉)面試題
- 連結串列-單連結串列實現
- LeetCode連結串列專題LeetCode
- Go 語言 結構體連結串列Go結構體
- 資料結構-malloc申請動態空間-連結串列的建立資料結構
- 《軟體專案經驗總結》
- C#資料結構-靜態連結串列C#資料結構
- 連結串列入門與插入連結串列
- (連結串列)連結串列的排序問題排序
- cmake 連結動態連結庫
- 動態連結庫與靜態連結庫
- 連結串列
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- 資料結構實驗:連結串列的應用資料結構