C語言鏈表逆序方法技巧
C語言有豐富的數據結構和運算符。包含了各種數據結構,如整型、數組類型、指針類型和聯合類型等,用來實現各種數據結構的運算。下面是小編為大家搜索整理的C語言鏈表逆序方法技巧,希望大家能有所收穫,更多精彩內容請及時關注我們應屆畢業生考試網!
簡潔的做法是
遍歷鏈表,
元素進棧,
遍歷的同時銷燬原來的鏈表。
元素出棧,
建立新鏈表。
高效的是,
用指向鏈表結點指針的指針操作
直接首尾交換指針值(兩兩進行)
一般的是前插法
實際上根本就不用插入,一次遍歷就可以完成了。
鏈表的逆序,必將涉及到兩個以上指針,一般用三個指針,
下面是一個人的'程序:
struct List1 *reverse(List1 *h) //h為鏈表的頭指針
{
struct List1 *p,*v1,*v2;
v2=h;
v1=NULL;
while( v2!=NULL ){
p=v2->pNext;
v2->pNext=v1;
v1=v2;
v2=p;
}
return v1;
}
另一個人的:
struct IntNode* res(struct IntNode* h)
{
struct IntNode *s, *s1;
s = h;
h = NULL;
while (s)
{
s1 = s;
s = s->next;
s1->next = h;
h = s1;
}
return h;
}
算法都是一致,但順序不一樣,這直接點明瞭鏈表操作的核心——順序,鏈表的算法主要難在順序上。
逆序操作中,要將一個指針指向前一個節點,中間必然斷開,這就需要兩個指針指向斷開處的一前一後。
上面兩個程序都是這樣,不同在於指針移動的位置。
-
C語言中遞歸函數的教學方法
導語:函數遞歸基於分治法思想,將複雜的大規模問題轉化為小規模問題進行求解,在算法設計中具有重要的理論意義和實用價值,是C語言教學的難點。下面就由小編為大家介紹一下C語言中遞歸函數的教學方法,歡迎大家閲讀!1.引言C語言是一種語法簡潔緊湊、運算符豐富、可移植...
-
2017年計算機C語言考試編程練習題及答案
江山代有才人出,各領風騷數百年。以下是小編為大家搜索整理的`2017年計算機C語言考試編程練習題及答案,希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!1.從鍵盤上輸入8個浮點數,編程求出其和以及平均值。要求寫出求和以及平均值的函數。答:編...
-
c#實現sunday算法實例
Sunday算法思想跟BM算法很相似,在匹配失敗時關注的是文本串中參加匹配的最末位字符的下一位字符,下面小編為大家整理了c#實現sunday算法實例,希望能幫到大家!因正則表達式搜索總是出現死循環,開始考慮改為其他搜索方式,因為自帶的IndexOf默認只能找到第一個或最後一...
-
C語言入門知識:常量
導語:在程序運行中,其值不能被改變的量稱為常量。下面是常量相關知識,歡迎閲讀:常量有5種類型:整型常量、實型常量、字符常量、字符串常量和符號常量。(一)數值轉換數字的四種表現形式:①:二進制:所有數字由0,1構成,逢二進一,二進制數中不會出現2.。例:110101②:八進制:以數...