寒假專案1-動態連結串列體驗(改造)(2)
/*
* Copyright (c) 2014, 煙臺大學計算機學院
* All rights reserved.
* 檔名稱:test.cpp
* 作 者:劉暢
* 完成日期:2015 年 1 月 21 日
* 版 本 號:v1.0
*
* 問題描述:改造博文示例中的連結串列。
* 輸入描述:輸入n(n為結點資料)。
* 程式輸出:輸出動態連結串列
(2)編寫函式void search(int x),輸出連結串列中是否有值為x的結點。
#include <iostream>
#include <cstdio>
using namespace std;
struct Node
{
int data; //結點的資料
struct Node *next; //指向下一個結點
};
Node *head=NULL; //將連結串列頭定義為全域性變數,以便後續操作
int Num=0,x;
void make_list2(); //建立連結串列
void out_list(); //輸出連結串列
void search_list();
int main()
{
cin>>x;
make_list2();
out_list();
search_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)
{
if (p->data==x)
Num++;
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
return;
}
void search_list()
{
if (Num==0)
cout<<"連結串列中無值為"<<x<<"的結點";
else
cout<<"連結串列中有值為"<<x<<"的結點";
return;
}
執行結果:
相關文章
- 2、連結串列
- 關於動態連結串列的理解
- 動態連結串列的建立(程式碼)
- 連結串列專題
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- LeetCode連結串列專題LeetCode
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- 【程式碼隨想錄】二、連結串列:2、設計連結串列
- 2024/12/2【連結串列】LeetCode 142 環形連結串列 II 【X】LeetCode
- 連結串列專題——面試中常見的連結串列問題面試
- 資料結構實驗之連結串列四:有序連結串列的歸併資料結構
- Spark 雜記1-專案使用經驗Spark
- 連結串列 - 單向連結串列
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- [連結串列】2.輸入一個連結串列,反轉連結串列後,輸出新連結串列的表頭。[多益,位元組考過]
- 《軟體專案經驗總結》
- 連結串列4: 迴圈連結串列
- 連結串列-雙向通用連結串列
- 連結串列-單連結串列實現
- L2-022 重排連結串列
- 資料結構-malloc申請動態空間-連結串列的建立資料結構
- Go 語言 結構體連結串列Go結構體
- C#資料結構-靜態連結串列C#資料結構
- cmake 連結動態連結庫
- 連結串列基礎2(超簡單)--單連結串列的插入和刪除
- 024 透過連結串列學Rust之非安全方式實現連結串列2Rust
- 024 通過連結串列學Rust之非安全方式實現連結串列2Rust
- 動態連結庫與靜態連結庫
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列入門與插入連結串列
- Leetcode_86_分割連結串列_連結串列LeetCode
- 資料結構-單連結串列、雙連結串列資料結構
- 連結串列