C 實現鍊錶

2022-08-03 20:18:19 字數 1906 閱讀 2541

**自:

#include #includeusing namespace std;

typedef struct nodenode;

class linklist

~linklist();

bool clearsqlist();

bool isempty() ;

int length();

bool getelem(int i, int* e);

int locateelem(int e);

bool priorelem(int cur_e, int* pre_e);

bool nextelem(int cur_e, int* next_e);

bool insert(int i, int e);

bool delete(int i, int* e);

node* reverse();

private:

node* head;

};//清空函式

bool linklist::clearsqlist()

return true;

}//析構函式

linklist::~linklist()

}//獲取鍊錶長度

int linklist::length()

return len;

}//獲取指定位置元素

bool linklist::getelem(int i, int *e)

if (p == nullptr) return false;

*e = p->data;

return true;

}//查詢元素位置

int linklist::locateelem(int e)

if (p->data == e) return loc;

else return -1;

}//獲取前驅節點

bool linklist::priorelem(int cur_e, int *pre_e)

if(p->next->data == cur_e)

else return false;

}//獲取後繼節點

bool linklist::nextelem(int cur_e, int *next_e)

else

p = p->next;

}return false;

}bool linklist::insert(int i, int e)

while(p && loc < i - 1)

if(p == nullptr)

return false;

s = (node*)malloc(sizeof(node));

s->data = e;

s->next = p->next;

p->next = s;

return true;

}//刪除指定位置元素

bool linklist::delete(int i, int *e)

while( p && loc < i-1)

if(p == nullptr)

return false;

node* s;

s = p->next;

p->next = p->next->next;

*e = s->data;

delete s;

s = null;

return true;

return false;

}//反轉鍊錶

node *linklist::reverse()

head = p;

return head;

}int main()

cout << endl;

}

鍊錶C 實現

node.h 第乙個檔案 ifndef node h define node h define true 1 define false 0 define ok 1 define error 0 define null 0 define flag 1 class node endif node h l...

鍊錶c 實現

昨天把鍊錶實現 寫到 寫鍊錶收穫 裡了,今天看了看居然沒有,不知道是沒儲存還是怎麼了,沒辦法,今天就把自己的 再粘一遍吧 對了,是用vs2013編輯的 slnode.cpp include struct slnode slnode const int item,slnode nextnode nul...

C 鍊錶實現

include include include using namespace std typedef int datatype typedef struct node linknode 鍊錶初始化 初始化鍊錶頭部指標需要用二級指標或者一級指標的引用 void linklist init linkn...