首頁 常見問題 線性鍊錶是線性表的鍊式儲存結構嗎?

線性鍊錶是線性表的鍊式儲存結構嗎?

Oct 24, 2019 am 09:50 AM
線性

根據資料結構中各資料元素之間前後關係的複雜程度,一般將資料結構分為兩大類型:線性結構與非線性結構。

線性鍊錶是線性表的鍊式儲存結構嗎?

線性鍊錶,顧名思義類似於一條鍊子的表,與線性鍊錶相對的是線性順序表,二者的差異是,線性順序表需要在記憶體中開闢一塊連續的區域,因此儲存的資料在記憶體中的狀態是連續的,而線性鍊錶在記憶體中的儲存是隨機的,資料之間的連結靠的是指針。   (推薦學習:web前端影片教學

如果一個非空的資料結構滿足下列兩個條件:

①有且只有一個根結點;

②每個結點最多有一個前件,也最多有一個後件。則稱該資料結構為線性結構,又稱線性表。所以線性表、棧與佇列、線性鍊錶都是線性結構,而二元樹是非線性結構。

具有連結儲存結構的線性表,它用一組位址任意的儲存單元存放線性表中的資料元素,邏輯上相鄰的元素在物理上不要求也相鄰,不能隨機存取。一般用結點描述:結點(表示資料元素) =資料域(資料元素的映像) 指標域(指示後繼元素儲存位置)

在鍊式儲存結構中,儲存資料結構的存儲空間可以不連續,各資料結點的儲存順序與資料元素之間的邏輯關係可以不一致,而資料元素之間的邏輯關係是由指標域來決定的。鍊式儲存方式即可用於表示線性結構,也可用來表示非線性結構。

一般來說,在線性表的鍊式儲存結構中,各資料結點的儲存符號是不連續的,且各結點在儲存空間中的位置關係與邏輯關係也不一致。對於線性鍊錶,可以從頭指標開始,沿著各結點的指標掃描到鍊錶中的所有結點。

建立一個線性鍊錶,這是一個動態產生鏈結點並依序將它們連結到鍊錶中的過程。設線性鍊錶的第1個鏈結點的指標為list。

當產生第一個鏈結點時,鍊錶為空,直接將鏈結點送list即可。每取得一個資料元素,就為此資料元素產生一個鏈結點,將所獲得的資料元素的資料資訊送給新結點的資料域的同時,將新結點的指標域置為NULL,然後將新結點插入到鍊錶的末端。

下面的演算法中是從一個名為 data.txt 的檔案中按行讀取字串作為線性鍊錶的資料元素。演算法如下:

LinkList creatList() {
    LinkList r, p, list = NULL;
    char data[ 100 ];
 
    FILE *f = fopen( "data.txt", "rb" );
    while( fgets( data, 100, f ) )
    {
        p = ( LinkList )malloc( sizeof( LNode ) );
        if( p != NULL ){
            strcpy( p->data, data );
            p->link = NULL;
 
            if( list == NULL )
                list = p;
            else
                r->link = p;
            r = p;
        }
    }
    fclose( f );
 
    return list;
}
登入後複製

以上是線性鍊錶是線性表的鍊式儲存結構嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆樹的耳語 - 如何解鎖抓鉤
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1666
14
CakePHP 教程
1425
52
Laravel 教程
1325
25
PHP教程
1273
29
C# 教程
1252
24