資料結構 迴圈鍊錶相關操作

2021-10-07 02:10:44 字數 1510 閱讀 3166

#include "iostream"

#include "cstdlib"

using namespace std;

#define true 1

#define false 0

#define ok 1

#define error 0

typedef int elemtype;

typedef int status;

typedef struct node node;

typedef struct node *clinklist;/*

功能:初始化乙個迴圈空鍊錶*/

clinklist clinklist_init()/

* 功能:建立迴圈鍊錶*/

void createclinklist(clinklist *head)

else}}

/*功能:迴圈鍊錶中元素的個數*/

int clinklist_length(clinklist *head)

return count;}/

* 功能:在第 i 個位置插入乙個元素*/

status clinklist_insert(clinklist *head, int i, elemtype e)if(

!pre |

| k > i)

if(i > clinklist_length(head)

+ 1)

else

return ok;}/

* 功能:刪除第 i 個元素,並將其值賦給*e*/

status clinklist_delete(clinklist *head, int i, elemtype *e)if(

!pre |

| k > i)

r = pre->next;

if(i > clinklist_length(head)

)else

pre->next = pre->next->next;

*e = r->data;/

/free(r)

;return ok;}/

* 功能:查詢第 i 個元素,並將查詢到的元素放入 *e 中*/

status clinklist_getdata(clinklist *head, int i, elemtype *e)if(

!p |

| k > i)

if(i > clinklist_length(head)

|| i <= 0)

else

return ok;}/

* 功能:列印整個鍊錶*/

status printlist(clinklist *head)

}else

cout << endl;

return ok;

}int main(

)else

system(

"pause");

return 0;

}

資料結構 帶頭結點雙向迴圈鍊錶相關操作

鍊錶結構如下 相關操作結構 因為帶頭結點,所以在任何結點的操作都是一致的,相對單鏈表來說簡單一些。ifndef linklist h define linklist h include include include 帶頭結點迴圈雙鏈表 typedef int datatype typedef st...

資料結構 順序表相關操作

project sequence list 資料結構 順序表 creatlist sqlist l,int n 引數 順序表l,順序表長度n 功能 建立長度為的順序表 時間複雜度 o n initlist sqlist l 引數 順序表l 功能 初始化 時間複雜度 o 1 insertlist sq...

資料結構 線性表相關操作

include using namespace std 靜態順序表 typedef struct l1 動態順序表 typedef struct l2 動態順序表初始化 void l2 init l2 l 插入 動態順序表 void l2 insert l2 l,int i,int e int p ...