這是我在學習資料結構的時候,寫的一些簡單**,關於鍊錶的簡單操作,可以作為他人學習資料結構的時候參考用
,由於寫的比較匆忙,難免有問題,如有問題,歡迎指正!
#include #include struct link
;//頭插法倒置鍊錶
link* headinsert(link* t)
return prev;
}//刪除沒有頭指標的單鏈表
bool deletenode(link* t)
link* temp = t->next;
t->value = temp->value;
t->next = temp->next;
free(temp);
return true;
}//刪除單鏈表節點
link* deletenode(link* head, int value)
if (p == null)//can't find
return head;
if (p ==head)//為頭結點的情況
q->next = p->next;
free(p);
return head;
}//快慢指標判斷是否迴圈鍊錶
bool isloop(link* head)
while (fast!=null && fast->next!=null) }
if (fast->next ==null) }
//找環的入口
link* findbegin(link* head)
while (fast!=null&&fast->next!=null) }
if (fast == null || fast->next == null)
//如果有環,slow從頭開始,fast和slow繼續往下走,當再次相遇,便是入口
slow = head;
while (slow!=fast)
return fast;
}//查詢倒數第k個節點
link* findkthtotail(link* head, int k)
//不是 p->next!= null;末尾節點是倒數第乙個節點
while (p!=null)
return t;
}
資料結構之鍊錶操作
線性表鏈式儲存結構定義 為了表示每個資料元素ai與其後繼資料元素ai 1之間的邏輯關係,對資料元素ai來說,除了儲存其本身資訊外,還需儲存乙個指示其直接後繼的資訊。我們把儲存資料元素的域稱為資料域,把儲存直接後繼位置的域稱為指標域。指標域中儲存的資訊稱為指標或鏈。這兩部分資訊組成資料元素ai的儲存影...
資料結構之鍊錶操作
1 基本概念 鏈式儲存結構不需要用位址連續的儲存單元來實現,而是通過 鏈 建立起資料元素之間的順序關係,因此它不要求兩個在邏輯上相鄰的資料元素在物理邏輯上也相鄰。從而,在插入和刪除元素的時候,不需要對原來的資料元素進行移動,只需要改變鍊錶節點之間的指向關係即可,從而提公升了執行時效率。2 主要儲存結...
資料結構之鍊錶操作
面試中單鏈表的相關操作也是常考的內容,本博文也是之前學習時的筆記,在此記錄下來,以便日後用到,同時歡迎批評指正。一 基本操作typedef struct lnode 2.鍊錶的銷毀 void destorylist linklist l else l next ptemp 3.鍊錶的判空 bool ...