鍊錶的初始化 插入 刪除 查詢等操作(詳細!)

2021-10-09 09:12:52 字數 2193 閱讀 7887

鍊錶的初始化、插入、刪除、查詢等操作(詳細!)

最近在學習資料結構和演算法,為了提高對**的理解,把自己手寫的**分享出來,以下是**:

//

// main.c

// list_0911

//// created by wangping on 2020/9/11.

//#include #include #include #define ok 1

#define error 0

typedef int elemtype;

typedef int status;

typedef struct node

node, *linklist;

// 初始化鍊錶

status initlist(linklist *l)

int data = 0;

// 建立頭結點

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

if (head == null)

// 頭指標指向頭結點

*l = head;

printf("請輸入結點資料, 0代表結束初始化:\n");

while (1)

// 建立結點

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

if (node == null)

node->data = data;

node->next = null;

head->next = node;

head = node;

}return ok;

}// 在l中第i個位置之前插入資料元素e

status listinsert(linklist *l, int i, elemtype e)

if( !p || j > i )

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

s->data = e;

s->next = p->next;

p->next = s;

return ok;

}// 刪除單鏈表l中的第i個元素

status listdelet(linklist *l, int i, elemtype *e)

if(!p->next || j>i)

q = p->next;

p->next = q->next;

*e = q->data;

free(q);

return ok;

}// 獲取鍊錶l中的第i個元素,並把值賦給e

status getelem(linklist l, int i, elemtype *e)

if( !p || j > i )

*e = p->data;

return ok;

}// 獲取資料在鍊錶中的位置

int listindex(linklist l, int data)

node *node = null;

int length = 0;

int index = -1;

for (node = l->next; node != null; node = node->next)

}if (index == -1)

else

return index;

}// 獲取元素個數

int listlength(linklist l)

node *temp = null;

int num = 0;

for (temp = l->next; temp != null; temp = temp->next)

return num;

}// 檢視鍊錶

void showlinklist(linklist l)

printf("\n");

}int main(int argc, const char * ar**)

case 2:

case 3:

case 4:

case 5:

case 6:

case 7:

default:

break;}}

return 0;

}

有問題大家一起討論交流呀!

迴圈鍊錶的初始化 插入 刪除等操作

附上迴圈鍊錶的初始化 元素插入和刪除等操作。main.c clinklist created by wangping on 2020 9 10.include include typedef int elemtype 定義結構體 typedef struct clinklist node 初始化迴圈...

順序表實現初始化 插入 刪除 銷毀等操作

include include using namespace std define error 0 define ok 1 define overflow 1 define list init size 100 根據實際情況,調整初始分配空間大小 define listincrement 10 當...

靜態鍊錶的初始化 插入 刪除

include include define ok 1 define true 1 define error 1 define false 1 define overflow 2 define elemtype int define status int 靜態鍊錶 x 使用陣列實現鍊錶,可以在沒有指...