記錄 資料結構 靜態鍊錶的實現

2021-08-19 11:56:58 字數 2306 閱讀 1072

#include #define cursorspace 1000

typedef int elementtype;

//定義結構體

struct node;

node cursorlist[cursorspace];

#ifndef _cursor_h //游標實現法

typedef int ptrtonode;

typedef ptrtonode headoflist;//指向靜態煉表頭結點的下標

typedef ptrtonode position;//指向某結點的下標

void initializestaticcursorlist();//靜態鍊錶初始化

bool isempty(const headoflist l);//測試該鍊錶是否為空

bool islast(const position p, const headoflist l);//測試當前位置是否為鍊錶的尾部

position finddata(elementtype x, const headoflist l);//查詢資料並返回該結點游標

position findprevious(elementtype e, const headoflist l);//查詢資料的前乙個結點游標(用於刪除函式)

void cursorfree(position dele);//刪除某個結點

position cursoralloc();//從備用鍊錶中獲取新結點

void deleteelem(elementtype e, const headoflist l);//查詢並刪除某節點

position advance(position p,const headoflist l);//找到指向前乙個結點的游標

void listinsert(elementtype e, const headoflist l, const position p);//在p後插入新節點

void listinsert2(elementtype e, const headoflist l, const position p);//在p前插入新節點

void deletelist(headoflist l);//刪除鍊錶

#endif // _cursor_h

//靜態鍊錶初始化

void initializestaticcursorlist()

cursorlist[cursorspace-1].next=0;

}//測試該鍊錶是否為空

bool isempty(const headoflist l)

//測試當前位置是否為鍊錶的尾部

bool islast(const position p, const headoflist l)

//查詢資料並返回該結點游標

position finddata(elementtype e, const headoflist l)

return cur;//如果在cur為0之前都沒找到data==e,返回0,表示不存在

}//查詢資料的前乙個結點游標(用於刪除函式)

position findprevious(elementtype e, const headoflist l)

return cur;//如果找到了,則返回指向其前乙個結點的游標,否則返回指向鍊錶尾結點的游標

}//刪除某個結點(把他放在備用煉表頭節點後)

void cursorfree(position dele)

//從備用鍊錶中獲取新結點

position cursoralloc()

//查詢並刪除某節點

void deleteelem(elementtype e, const headoflist l)

}//找到指向前乙個結點的游標

position advance(position p,const headoflist l)

if(cursorlist[cur].next==p) return cur;

else return 0;

}//在p後插入新節點

void listinsert(elementtype e, const headoflist l, const position p)

}//在p前插入新節點

void listinsert2(elementtype e, const headoflist l, const position p)

//刪除鍊錶

void deletelist(headoflist l)

cursorlist[l].next=0;

}

資料結構鍊錶 靜態鍊錶

1 在這裡我們首先要複習一下鍊錶c語言的定義 這看起來很簡單,但實際上至關重要!data域 存放結點值的資料域。next域 存放結點的直接後繼的位址 位置 的指標域 鏈域 也就是說next域儲存的是乙個位址,這個位址是下一節點的位址。注意 鍊錶通過每個結點的鏈域將線性表的n個結點按其邏輯順序鏈結在一...

資料結構 靜態鍊錶

首先我們讓陣列的元素都是由兩個資料域組成,data和cur。也就是說,陣列的每乙個下標都對應乙個data和乙個cur。資料域data用來存放資料元素,也就是通常我們要處理的資料 而游標cur相當於單鏈表中的next指標,存放該元素的後繼在陣列中的下標。我們把這種用陣列描述的鍊錶叫做靜態鍊錶。陣列的第...

資料結構 靜態鍊錶

include using namespace std struct node typedef node linklist define maxsize 20 void init linklist list int getlength linklist list int malloc linklis...