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