C語言資料結構第二章 靜態鍊錶

2021-10-02 21:17:29 字數 2673 閱讀 5691

在很多時候需要根據此時的輸入來控制上乙個位置的引數

在輸入的時候,讀到-1結束,此時要讓上乙個陣列的cur指向0,可以

多用乙個temp存著上乙個陣列的下標,然後head[temp].cur = 0;先判斷這個數有沒有結束,再讓data_cur進入下乙個陣列位置head[data_cur].cur定義節點,包括資料和游標(下乙個資料所在的陣列位置)

typedef

struct static_nodestatic_node;

用這種結構型別構建乙個陣列,並初始化

static_node head[size]

; head[0]

.cur = real_size;

head[real_size-1]

=0;

for

( i =

0; i1; i++

)

增加和刪除

增加刪除都一樣,讀入一下資料,把幾個引數改一下,把可能出現的狀況都想一下,然後把邏輯理一下就好了。不過感覺先寫一下偽**會舒服點,不然會漏東西。

就是寫邏輯+寫變化的引數

轉移函式

陣列的話就是傳陣列的名,接收端接受陣列名的指標,陣列照用

常數要改的話就穿位址,接收端收常數指標,再重新定義一遍常數等於指標的值,中間一樣,在最後再把常數的值賦予到指標上,傳回主函式

結構體也一樣,可看做int,float的另一種形式

把常數傳進函式的時候記得重新創個常數,把指標的值賦到常數上

// 2020/2/12 在這裡的haead,data_number和cur沒有寫到乙個列表裡,

// 造成了多次引用,不方便,之後就全寫一起了

#include

#include

#define size 100

#define real_size 7;

typedef

struct static_nodestatic_node;

void

init_head

( static_node *head )

;void

add( static_node *head,

int*pdata_number)

;void

print

(static_node *head,

int data_number,

int first_cur )

;void

insert

( static_node *head,

int*pdata_number,

int*pfirst_cur)

;void

delete

( static_node *head,

int*pdata_number,

int*pfirst_cur)

;int

main()

void

init_head

( static_node *head )

}void

add(static_node *head,

int*pdata_number)

else

}while

(number !=-1

);head[0]

.cur = data_number +1;

*pdata_number = data_number;

}void

print

(static_node *head,

int data_number,

int first_cur )

}void

insert

( static_node *head,

int*pdata_number,

int*pfirst_cur)

if( before_cur )

head[data_number +1]

.cur = data_cur ;

head[data_number +1]

.data = insert_number ;

data_number ++

;break;}

before_cur = data_cur;

data_cur = head[data_cur]

.cur;

}*pdata_number = data_cur;

*pfirst_cur = first_cur;

printf

("增加完畢\n");

}void

delete

( static_node *head,

int*pdata_number,

int*pfirst_cur)

if( before_cur )

data_number --

;break;}

before_cur = data_cur;

data_cur = head[data_cur]

.cur;

}*pdata_number = data_cur;

*pfirst_cur = first_cur;

printf

("刪除完畢");

}

資料結構 C語言描述 第二章(1) 順序表

寫在前面 唉,我們學校通訊工程大二不學資料結構,實在無奈,只能自己硬補一發了。我看的是耿國華的書,不是很有名,但是還是比較實用的,每章當中的每種資料結構的基本操作我都會用c語言自己實現一遍,但是後面的習題我會挑著做,基本就是把一章中最難的做掉,剩下的隨便吧,下學期的課會有演算法,自己也會多看一點演算...

第二章 資料結構 二

知識點 trie樹 並查集,堆的操作 高效地儲存和查詢字串集合的資料結構 const int n 100010 int son n 26 cnt n idx 插入 void insert char str cnt p 以這個點結尾的字元數 查詢 intquery char str return cn...

資料結構 第二章 線性表

線性表 是具有相同型別的n n 0 個元素的有限序列,其中n為表長,當n 0時,該錶為空表。線性表的特點 線性表的九種基本操作 initlist l 初始化表。構造乙個空的線性表。destroylist l 銷毀操作。銷毀線性表,並釋放線性表l所占用的記憶體空間。locateelem l,e 按值查...