鏈式表:
採用鏈式儲存的一種線性標。
特點:元素在記憶體中儲存的位置是分散的,利用指標來建立一對一的聯絡。
優點:記憶體利用率高,元素的數量不限,新增和刪除元素方便。
缺點:訪問速度慢,只能從頭到尾進行遍歷。
設計元素:
資料域:儲存各型別資料。
指標域:元素的型別,指向下一處元素。
來個簡單的鏈式結構感受一下鏈式儲存吧
#define type int
//設計元素結構
typedef struct node
node;
node *create_node(type data)
int main()
return 0;
}
下面來個 正兒八經 的鏈式表
#define type int
//設計元素結構
typedef struct node
node;
node *create_node(type data)
typedef struct list
list;
//建立鍊錶
list *create_list();
//銷毀鍊錶
void destory_list(list *list);
//在尾部新增元素
void add_list(list *list,type val);
//在指定位置新增元素
bool insert_list(list *list,type val);
//按位置刪除元素
bool delete_index_list(list *list,int index);
//按值刪除元素
bool delete_value_list(list *list,type val);
//按值查詢元素
node *find_value_list(list *list,type val);
//按位置訪問元素
node *find_index_list(list *list);
//遍歷鍊錶
void show_list(list *list);
//建立鍊錶
list *create_list()
//銷毀鍊錶
void destory_list(list *list)
while(list->head);
free(list); }
//在尾部新增元素
void add_list(list *list,type val)
else
list->cnt++; }
//在指定位置新增元素
bool insert_list(list *list,int index,type val)
node *node = list->head;
while(index--)
node *temp = create_node(val);
temp->next = node->next;
node->next = temp;
list->cnt++;
return true;
}//按位置刪除元素
bool delete_index_list(list *list,int index)
list->cnt --;
if(index == 0)
node *prev = list->head;
while(--index)
node *del = prev->next;
prev->next = del->next;
free(del);
}//按值刪除元素
bool delete_value_list(list *list,type val)
node *node = list->head;
node *del = list->head->next;
while(node != null)
node = del;
del = del->next;
} return false;
}//按值查詢元素
node *find_value_list(list *list,type val)
node = node->next;
} return null;
}//按位置訪問元素
node *find_index_list(list *list,int index)
node *node = list->head;
while(index--)
return node;
}//遍歷鍊錶
void show_list(list *list)
printf("\n");
}
C 資料結構 鍊錶的鏈式實現
傳統的鍊錶不能實現資料和鍊錶的分離,一旦資料改變則鍊錶就不能用了,就要重新開發。如上說示 外層是teacher,裡面小的是node.ifndef mylinklist h define mylinklist h typedef void linklist 鍊錶上下文,任意型別 typedef str...
資料結構之鏈式佇列以及C 實現與模板
佇列,一種特殊的線性表 特點 只允許在一端輸入,在另一端輸出。輸入端稱為隊尾,輸出端稱為隊頭 因此,佇列,又稱為先進先出表 fifo 類似於生活中的排隊,先來的排在前頭,後來的排在後頭,乙個乙個辦理業務。佇列有兩種,一種叫做迴圈佇列 順序佇列 另一種叫做鏈式佇列。這一篇講的是鏈式佇列,迴圈佇列在另外...
資料結構 鏈式表
資料結構課作業之鏈式表。1 include 2 include 3 include 4 using namespace std 56 struct node7 1213 class stulist14 3334 void stulist clear 3543 44 45void stulist pr...