記錄自己學習資料結構的歷程(1)靜態鍊錶

2021-10-25 04:05:00 字數 2180 閱讀 7628

最近在看《大話資料結構》,但裡面還是有的東西沒有弄懂,就是靜態鍊錶這裡,感覺有一些難理解,但也嘗試著自己敲了敲**。不知道為啥敲了這麼多行…但好在測試的資料都通過了??

#include

#include

#include

using

namespace std;

#define maxsize 9

typedef

int elemtype;

typedef

struct

sll;

/*當sll[0].next==0 表滿

當sll[maxsize-1].next==0 表空

當next域為-1 到達表尾

*/void

initsll

(sll *l)

;int

getlength

(sll *l)

;int

mallocsll

(sll *l)

;void

freesll

(sll *l,

int freeloca)

;int

getlogicpos

(sll *l,

int pos)

;bool

insertsll

(sll *l,

int pos,elemtype num)

;bool

deletesll

(sll *l,

int pos)

;void

testfunc

(sll *l)

;void

initsll

(sll *l)

l[maxsize-1]

.next=0;

cout<<

"初始化成功"

"......"

<}int

getlength

(sll *l)

else

}return length;

}int

mallocsll

(sll *l)

else

}void

freesll

(sll *l,

int freeloca)

intgetlogicpos

(sll *l,

int pos)

else

if(pos>length)

else

if(logicpos==0)

else

if(pos>=

1&&pos<=length)

}return logicpos;

}bool

insertsll

(sll *l,

int pos,elemtype num)

else

if(pos!=

1&&pos>length+1)

else

else

if(l[

getlogicpos

(l,pos-1)

].next==-1

)else

return

true;}

}bool

deletesll

(sll *l,

int pos)

else

if(pos<=

0||pos>=maxsize-1)

else

if(pos>length)

else

if(pos>=

1&&pos<=length)

else

if(length!=

1&&pos==length)

else

if(length!=

1&&pos==1)

else

if(length!=

1&&pos}}

void

testfunc

(sll *l)

cout<<

"非空閒表第一節點號為"

<.next

"當前表長為"

"......"

<}int

main

(void

)

資料結構學習記錄 1

1.資料結構是相互之間存在一種或對多種特定關係的資料元素的集合。2.在任何問題中,資料元素都不是孤立存在的,而是在他們之間存在著某種關係,這種資料元素之間的關係叫做結構 3.根據資料元素之間關係的不同特性,通常有4類基本結構 a.集合 結構中的資料元素之間除了 同屬於用乙個集合 的關係外,沒有其他關...

資料結構學習記錄 鍊錶1

單向鍊錶 單向鍊錶的每乙個結點都用乙個結構表示,該結構由資料和指向該結構的指標組成。乙個double型別的單向鍊錶結點 typedef struct node node 乙個自定義資料型別的單向鍊錶結點 typedef struct book book typedef struct a node o...

資料結構的學習 1

def func3 x if x 0 print x func3 x 1 deffunc4 x if x 0 func4 x 1 print x 輸出結果 43 21 1 234max 0 defhanoi n,a,b,c 統計移動的次數 global maxif n 0 max max 1 han...