#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 ...