線性表的鏈式儲存 單鏈表

2022-03-02 22:26:15 字數 3346 閱讀 1943

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指向頭結點,資料域是...