鍊錶的游標實現

2021-09-25 08:43:45 字數 1514 閱讀 6986

/**

* 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的...