C 鍊錶實現

2021-08-16 03:30:51 字數 2569 閱讀 8897

typedef

struct node node;

class linklist

~linklist();

bool clearsqlist();

bool isempty()

int length();

void 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();

};

各個函式的作用參見下面的實現注釋

析構函式

//析構函式

linklist::~linklist()//和清空一樣

}

清空函式

bool linklist::clearsqlist()//清空函式,和析構一樣

}

獲取鍊錶長度

//獲取鍊錶長度

int linklist::length()

return

len;

}

獲取指定位置的元素

bool linklist::getelem(int i, int

*e)//*e是返回的元素

if (p == null) return false;

*e = p->data;

return true;

}

查詢元素e在鍊錶什麼位置(下標位置,從0開始)

int linklist::locateelem(int e)

std::cout

<<

"表中不存在指定元素"

<< std::endl;

exit(1);

}

取上乙個元素

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

else

p = p->next;

}return

false;//遍歷完不存在或者只有乙個頭結點

}

取下乙個元素

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

else

p = p->next;

}return

false;

}

在指定位置插入元素e

void linklist::insert(int i, int e)

while (p&&j < i - 1)

if (p == null)

return

false;//到隊尾了

s= (node *)new node[1];

s->data = e;

s->next = p->next;

p->next = s;

return

true;

}

//刪除指定位置的元素,並把刪除的元素賦給*e

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

while (p&&j < i -

1)

if (p ==

null)

return

false;

s = p->next;

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

*e = s->

data;

delete s;

s =null;

return

true;

}

//反轉乙個鍊錶

node* linklist::reverse()

head = p;

return head;

}

#include

#include"linklist.h"

using

namespace

std;

int main()

cout

<< endl;

cout

<< "反轉後各個元素的值是:";

鍊錶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...