資料結構之鍊錶生成

2021-08-16 17:02:54 字數 1853 閱讀 9311

鍊錶是資料結構中比較重要的一部分,我將根據自己所學習到的知識,來對鍊錶知識進行一些梳理。

typedef struct linknode

linknode,*linknode;

如上所示,每個鍊錶節點都包含乙個資料域,乙個指標域,對於element,當資料域型別是整型時,改為int,若資料域型別是字元型,改為char,若是浮點型,布林型,甚至是其他的資料結構則改為對應的宣告型別,例如對於棧的資料結構,可以這樣

設計://節點的資料結構

typedef struct node

node,*node;

//棧的資料結構

typedef struct stack

stack,*stack;

下面我將介紹鍊錶的生成方法:

鍊錶的生成可分為從尾部增加節點,或者頭插入節點的方法,這兩種方法所得到的鍊錶在結構上會有所不同。

(1)從尾部增加節點法(這裡要求鍊錶頭部不能為空節點)

原理:從鍊錶頭部依次查詢到鍊錶尾部,在鏈入新的節點。資料結構與上面所說的鍊錶的資料結構相同,這裡預設資料域為字元型。

函式如下:

void generate (linknode **head,char a)//將字元'a'插入到鍊錶尾部

node = *head;

while(node->nextnode != null)

node = node->nextnode;

node->nextnode = newnode;

}(2)頭插入節點的方法,與尾插發不同的地方在於,頭插入節點的方法會使順序倒過來,函式如下:

void insert (linknode **newhead,char a) //newhead為新的頭結點,這裡令他為空節點

node->nextnode = (*newhead)->nextnode;

(*newhead)->nextnode = node; 

}源**如下:

#include "stdafx.h"

#include

#include

typedef struct linknode

linknode,*linknode;

void generate (linknode **head,char a);

void insert (linknode **newhead,char a);

int _tmain(int argc, _tchar* argv)

printf ("列印鍊錶如下:\n");

while(head != null)

}else if (choose == 1)

printf ("列印鍊錶如下:\n");

資料結構 表之煉表

頭插法建立 尾插法建立 顯示 銷毀 include include using namespace std typedef int elemtype typedef struct lnode linklist void createlinklistf linklist l,elemtype a,in...

資料結構之鍊錶

頭結點 第乙個有效結點之前的那個結點 頭結點並不存有效資料 加頭結點的目的主要是為了方便對鍊錶的操作 頭指標 指向頭結點的指標變數 尾指標 指向尾節點的指標變數 如果希望通過乙個函式對鍊錶進行處理,只需要乙個引數 頭指標 首先要定義乙個單鏈表儲存結構 然後建立乙個空表,即初始化,我寫的這個提前設定好...

資料結構之鍊錶

鍊錶是一種基本的資料結構型別,它由乙個個結點組成。每乙個結點包括乙個資料的儲存和乙個指向下乙個結點的引用。在這個定義中,結點是乙個可能含有任意型別資料的抽象實體,它所包含的指向結點的應用顯示了它在構造鍊錶之中的作用。和遞迴程式一樣,遞迴資料結構的概念一開始也令人費解,但其實它的簡潔性賦予了它巨大的價...