Swift4實現成組鏈結法

2021-09-03 02:38:16 字數 1405 閱讀 5409

//  main.swift

// 成組鏈結法----swift

//// created by wejudging on 2018/12/11.

//import foundation

//盤塊的大小

let block_size:int = 4

//盤塊分組大小

let group_size:int = 3

//盤塊數

let blocknum:int = 7

struct block

var m:block=block.init(base: unsafemutablepointer.allocate(capacity: block_size*8), top: unsafemutablepointer.allocate(capacity: block_size*8))

//定義記憶體盤塊的堆疊

var memoryblock:block = block.init(base: unsafemutablepointer.allocate(capacity: block_size*8), top: unsafemutablepointer.allocate(capacity: block_size*8))

//定義全域性的系統盤塊陣列

var diskblock:[block] = [block].init(repeating: m, count: blocknum)

//盤塊分組的數量,隨著分配和**而可能發生動態變化

var groupnumber:int = 0

//分配和**的演算法共享copy()函式

var copypattern:bool = true

//系統現有的空閒盤塊數量(計數)

var spareblocknumber:int = 0

//為盤塊(包括記憶體盤塊)分配空間,並進行部分初始化工作

func initblock()

memoryblock.base = unsafemutablepointer.allocate(capacity: block_size*8)

memoryblock.top = memoryblock.base!+1

memoryblock.base?.pointee = 0

}//初始化系統磁碟的盤塊的成組鏈結情況,這裡為了簡單直觀起見,先按盤塊號由小到大的順序進行連線

func initialallocation()

else

else}}

}groupnumber += 1}}

func show() {

var firstblockid = 0 , groupid = 0 , isfirstgroup:bool = true

for _ in 0..

前往github專案位址

Swift4實現 混合索引組織 演算法

main.swift 混合索引組織 created by wejudging on 2018 12 10.import foundation 定義盤塊的大小,單位為b let block size int 16 定義乙個索引塊中可以存放多少盤塊 let max number in block int...

swift4 學習筆記 二

用函式來定義乙個功能 定義乙個函式需要在函式名後面用小括號 來新增引數,用 來區分引數型別,名稱和返回值的型別 func greet name string,day string string let greetstring greet name snow day monday print gree...

Swift 4 流程控制

if語句 判斷條件不需要小括號,條件執行體必須要放在花括號中 var int6 int 6 if int6 0 print int6 else print 666666666 switch語句 switch中不需要強制寫break語句,但是在每個case裡必須有一條語句 fallthrough可以在...