寒假專案1-動態連結串列體驗(改造)(6)
/*
* Copyright (c) 2014, 煙臺大學計算機學院
* All rights reserved.
* 檔名稱:test.cpp
* 作 者:劉暢
* 完成日期:2015 年 1 月 23 日
* 版 本 號:v1.0
*
* 問題描述:改造博文示例中的連結串列。
* 輸入描述:輸入n(n為結點資料)。
* 程式輸出:輸出動態連結串列
(6)編寫函式void insert(int x),將值為x的結點插入到由make_list3建立起來的有序連結串列中。
#include <iostream>
#include <cstdio>
using namespace std;
struct Node
{
int data; //結點的資料
struct Node *next; //指向下一個結點
};
Node *head=NULL; //將連結串列頭定義為全域性變數,以便後續操作
void make_list3(); //建立連結串列
void out_list(); //輸出連結串列
void insert(int x); //將值為x的結點插入到有序連結串列中,使仍有序
int main()
{
int x;
cin>>x;
make_list3();
out_list();
insert(x);
out_list();
return 0;
}
void make_list3()
{
int n;
Node *p,*q,*t;
cout<<"輸入若干正數(以0或一個負數結束)建立連結串列:"<<endl;
cin>>n;
while(n>0)
{
t=new Node;
t->data=n;
t->next=NULL;
if(head==NULL)
head=t;
else
{
if (n<=head->data)
{
t->next=head;
head=t;
}
else
{
p=head;
q=p->next;
while (q!=NULL&&n>q->data)
{
p=q;
q=p->next;
}
if (q==NULL)
{
p->next=t;
}
else
{
t->next=q;
p->next=t;
}
}
}
cin>>n;
}
return;
}
void out_list()
{
Node *p=head;
cout<<"連結串列中的資料為:"<<endl;
while (p!=NULL)
{
cout<<p->data<<" ";
p=p->next;
}
cout<<endl;
return;
}
void insert(int x)
{
Node *q,*p,*t;
t=new Node;
t->data=x;
t->next=NULL;
if (head==NULL)
head==t;
else
{
if(x<=head->data)
{
t->next=head;
head=t;
}
else
{
p=head;
q=p->next;
while(q!=NULL&&x>q->data)
{
p=q;
q=p->next;
}
if(q==NULL)
{
p->next = t;
}
else
{
t->next=q;
p->next=t;
}
}
}
cout<<"已插入新結點..."<<endl;
return;
}
執行結果:
相關文章
- 關於動態連結串列的理解
- 動態連結串列的建立(程式碼)
- 連結串列專題
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構實驗之連結串列九:雙向連結串列資料結構
- LeetCode連結串列專題LeetCode
- 資料結構實驗之連結串列三:連結串列的逆置資料結構
- 資料結構實驗之連結串列五:單連結串列的拆分資料結構
- 資料結構實驗之連結串列六:有序連結串列的建立資料結構
- 資料結構實驗之連結串列一:順序建立連結串列資料結構
- 連結串列專題——面試中常見的連結串列問題面試
- 資料結構實驗之連結串列四:有序連結串列的歸併資料結構
- Spark 雜記1-專案使用經驗Spark
- 連結串列 - 單向連結串列
- 連結串列-迴圈連結串列
- 連結串列-雙向連結串列
- 《軟體專案經驗總結》
- 連結串列4: 迴圈連結串列
- 連結串列-雙向通用連結串列
- 連結串列-單連結串列實現
- 資料結構-malloc申請動態空間-連結串列的建立資料結構
- Go 語言 結構體連結串列Go結構體
- C#資料結構-靜態連結串列C#資料結構
- cmake 連結動態連結庫
- 動態連結庫與靜態連結庫
- 連結串列-雙向非通用連結串列
- 【LeetCode】->連結串列->通向連結串列自由之路LeetCode
- 連結串列入門與插入連結串列
- Leetcode_86_分割連結串列_連結串列LeetCode
- 單連結串列的逆序輸出 PTA6-1 單連結串列逆轉 為例
- 資料結構-單連結串列、雙連結串列資料結構
- 連結串列
- 資料結構實驗之連結串列七:單連結串列中重複元素的刪除資料結構
- 資料結構實驗:連結串列的應用資料結構
- LeetCode-Python-86. 分隔連結串列(連結串列)LeetCodePython
- 6-7 奇數值結點連結串列 (20 分)
- 6-8 單連結串列結點刪除 (20 分)
- 單連結串列建立連結串列出現問題
- 資料結構實驗之連結串列八:Farey序列資料結構