帶頭節點的單鏈表基本操作C 實現

2021-09-12 22:36:07 字數 1462 閱讀 2449

//linked_list.cpp

#include using namespace std;

#define end -1 //插入法建立鍊錶時的結束標誌

typedef int elemtype; //取元素型別為int

//定義狀態資訊

enum status ;

//節點定義

struct node ;

class linkedlist ;

//帶頭節點的鍊錶初始化

linkedlist::linkedlist()

linkedlist::~linkedlist()

//表尾插入法建立鍊錶

status linkedlist::createlist_r()

return success;

}//表頭插入法建立鍊錶

status linkedlist::createlist_h()

return success;

}//在鍊錶的指定位置插入元素

status linkedlist::insertelem(int loc, const elemtype e)

if (p == null)

return error;

node *s = new node;

s->data = e;

s->next = p->next;

p->next = s;

return success;

}//刪除鍊錶指定位置的元素

status linkedlist::deleteelem(int loc)

if (p == null)

node *u = p->next;

p->next = u->next;

delete u;

return success;

}//獲取鍊錶指定位置的元素,通過引用方式傳出

status linkedlist::getelem(int loc, elemtype &e)

if (p == null)

e = p->data;

return success;

}//獲取給定元素在鍊錶中的位置,以指標形式給出

node *linkedlist::locate(const elemtype e)

p = p->next;

} return null;

}//獲取煉表表頭指標

node *linkedlist::gethead()

//獲取鍊錶長度

int linkedlist::getlength()

return cnt;

}//列印鍊錶內元素資料值

void linkedlist::printlist()

cout << endl;

}int main()

單鏈表操作(帶頭節點)

帶頭節點的單鏈表 include include typedef struct lnodenode linklist bool initlist linklist 初始化單鏈表 bool listinsert linklist int int 在指定位置插入資料 bool empty linklis...

帶頭節點單鏈表的操作

我們來看單鏈表的銷毀,排序,逆置 首先還是來看一下單鏈表的銷毀 我們能不能將單鏈表的操作像順序表一樣直接將他的size變成0然後直接釋放掉指向他的空間?void listdestory slist psl 我們知道鍊錶儲存資料最大的不同就是不是一段連續的空間,如果釋放鍊錶空間,需要釋放每乙個節點的空...

單鏈表的操作(帶頭節點)

typedef struct lnodelnode,linklist 鍊錶的各種具體操作函式 bool initlist linklist l 鍊錶的初始化 bool empty linklist l 判斷鍊錶是否為空 intlength linklist l 求單鏈表的長度 bool listin...