forward_list* creat_3() //頭插法
return head;
}
//尾插法建表
forward_list* creat_1()
if(rear!= null)//對於非空表,將尾結點的下乙個結點置空
rear->next = null;
return head;
}
//尾插法建表,包含頭結點
forward_list* creat_2()
rear->next = null;
return head;
}
void search_1(forward_list *s, int x)
p = p->next;
} printf("\nthe value : %d is not fonud !\n",x);
}
void search_2(forward_list *s, int x)//帶頭節點
p = p->next;
} printf("\nthe value : %d is not fonud !\n",x);
}
void delete_1(forward_list *head,int i) //刪除第i個節點(單鏈表包含頭節點)
if(p->next!=null)
else
printf("illegal delete position,delete failed!");
}
void forward_list_delete_1(forward_list *s,int x)//刪除鍊錶(不帶頭節點)中指定值的元素
temp = p;
p = p->next;
} printf("\n你要刪除的元素 %d 不在表中\n",x);
return ;
}
void reverse_2(forward_list *head)//頭插法逆置,帶頭節點
}
*** 帶頭結點 ***
void list_length_2(forward_list *s)
printf("\nlist length: %d\n",count);
}
*** 不帶頭結點 ***
void list_length_1(forward_list *s)
printf("\nlist length: %d\n",count);
}
*** 帶頭結點 ***
void print_forward_list_2(forward_list *s)//列印含頭節點的單鏈表
return ;
}
*** 不帶頭結點 ***
void print_forward_list_1(forward_list *s)//列印單鏈表
return ;
}
#include#include#include//定義單鏈表結點型別
typedef struct nodeforward_list;
//尾插法建表
forward_list* creat_1()
if(rear!= null)//對於非空表,將尾結點的下乙個結點置空
rear->next = null;
return head;
}//尾插法建表,包含頭結點
forward_list* creat_2()
rear->next = null;
return head;
}forward_list* creat_3() //頭插法
return head;
}void search_1(forward_list *s, int x)
p = p->next;
} printf("\nthe value : %d is not fonud !\n",x);
}void search_2(forward_list *s, int x)//帶頭節點
p = p->next;
} printf("\nthe value : %d is not fonud !\n",x);
} void reverse_1(forward_list *head)//頭插法逆置單鏈表
}void reverse_2(forward_list *head)//頭插法逆置,帶頭節點
} void forward_list_delete_1(forward_list *s,int x)//刪除鍊錶(不帶頭節點)中指定值的元素
temp = p;
p = p->next;
} printf("\n你要刪除的元素 %d 不在表中\n",x);
return ;
}void delete_1(forward_list *head,int i) //刪除第i個節點(單鏈表包含頭節點)
if(p->next!=null)
else
printf("illegal delete position,delete failed!");
} /*//不對
void list_delete(forward_list *s, int i)//刪除單鏈表(不帶頭節點)的第i個結點
if(i == count)
if(p->next!=null)
else
printf("illegal delete position,delete failed!");
}*/
void list_length_1(forward_list *s)
printf("\nlist length: %d\n",count);
}void list_length_2(forward_list *s)
printf("\nlist length: %d\n",count);
}void print_forward_list_1(forward_list *s)//列印單鏈表
return ;
}void print_forward_list_2(forward_list *s)//列印含頭節點的單鏈表
return ;
} int main()
線性表的鏈式儲存 單鏈表
邏輯結構上乙個挨著乙個的資料,在實際儲存中,並沒有像順序表那樣也相互緊挨著,恰恰相反,資料隨機分布在記憶體的各個位置,這種儲存結構稱為線性表的鏈式儲存。由於分散儲存,為了能夠體現出資料元素之間的邏輯關係,每個資料元素在儲存的同時,要配備乙個指標,用於指向它的直接後繼元素,即每乙個資料元素都指向下乙個...
線性表的鏈式儲存 單鏈表的實現
1,完成鏈式儲存結構線性表的實現 2,linklist 設計要點 1,類模板,通過頭結點訪問後繼結點 2,定義內部結點型別 node,用於描述資料域和指標域 3,實現線性表的關鍵操作 增刪查等 3,鍊錶的定義 4,linklist 鍊錶的實現 1 ifndef linklist h 2 define...
線性表之鏈式儲存 單向迴圈鍊錶
單向迴圈線性表 也是通過結點的形式在儲存器中進行儲存,結點包括資料域和指標域,邏輯上相鄰的兩個結點在物理上不一定相鄰,單向迴圈鏈式儲存的線性表,定義了乙個唯一的頭結點,頭結點的資料域是儲存資料的,指標域next指標指向下乙個結點,也就是開始結點,定義了乙個尾結點,尾結點的next指向頭結點,資料域是...