在很多時候需要根據此時的輸入來控制上乙個位置的引數
在輸入的時候,讀到-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 按值查...