/**
* author: bbird_gl
* date: 2019/7/17
* description: 鍊錶的游標實現標頭檔案
*/#ifndef _cursor_h_
#define _cursor_h_
#define spacesize 100
typedef int elementtype;
typedef int ptrtonode;
typedef ptrtonode list;
typedef ptrtonode position;
void initializecursorspace(void);
int isempty(const list l);
int islast(const position, const list l);
position find(elementtype x, const list l);
void delete(elementtype x, list l);
position findprevious(elementtype x, const list l);
void insert(elementtype x, list l, position p);
#endif
/**
* author: bbird_gl
* date: 2019/7/17
* description: 鍊錶的游標實現原始檔
*/#include #include "cursor.h"
struct node
;struct node cursorspace[spacesize];
static position cursoralloc(void)
static void cursorfree(position p)
//初始化沒有使用鍊錶空間
void initializecursorspace(void)
//判斷帶有頭結點的鍊錶是否為空
int isempty(const list l)
int islast(const position p, const list l)
position find(elementtype x, const list l)
void delete(elementtype x, list l)
}position findprevious(elementtype x, const list l)
//在位置p後插入結點
void insert(elementtype x, list l, position p)
cursorspace[t].element = x;
cursorspace[t].next = cursorspace[p].next;
cursorspace[p].next = t;
}
鍊錶的游標實現
諸如basic和fortran等許多語言都不支援指標。如果需要鍊錶而又不能使用指標,這時我們可以使用游標 cursor 實現法來實現鍊錶。在鍊錶的實現中有兩個重要的特點 資料儲存在一組結構體中。每乙個結構體包含有資料以及指向下乙個結構體的指標。乙個新的結構體可以通過呼叫malloc而從系統全域性記憶...
鍊錶的游標實現
在最開始的學習中,我們實現鍊錶都需要依靠指標來連線鍊錶的各個節點,但是,在一些語言中是不支援指標的,那麼,在不使用指標的情況下,我們就無法實現鍊錶了嗎?當然不是,其實還有另一種鍊錶的實現方式 游標實現!那麼如果想不使用指標,我們必須了解指標在鍊錶中的作用,我們來想一下,以前在寫鍊錶時,我們在那些地方...
鍊錶的游標實現
對於不支援指標的語言,鍊錶可以用游標來表示 鍊錶的游標實現 array陣列分兩部分,一部分為鍊錶部分,有乙個獨立頭節點,下標為1 另一部分為freelist部分,也有獨立的乙個節點,下標為0,對於此部分,相當於乙個棧 進行malloc操作時,從開頭 下標0後 取空間 進行free操作時,被free的...