亚洲精品中文字幕无乱码_久久亚洲精品无码AV大片_最新国产免费Av网址_国产精品3级片

C語言

C語言鏈表逆序方法技巧

時間:2024-08-21 13:32:50 C語言 我要投稿
  • 相關(guān)推薦

C語言鏈表逆序方法技巧

  C語言有豐富的數(shù)據(jù)結(jié)構(gòu)和運算符。包含了各種數(shù)據(jù)結(jié)構(gòu),如整型、數(shù)組類型、指針類型和聯(lián)合類型等,用來實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的運算。下面是小編為大家搜索整理的C語言鏈表逆序方法技巧,希望大家能有所收獲,更多精彩內(nèi)容請及時關(guān)注我們應屆畢業(yè)生考試網(wǎng)!

  簡潔的做法是

  遍歷鏈表,

  元素進棧,

  遍歷的同時銷毀原來的鏈表。

  元素出棧,

  建立新鏈表。

  高效的是,

  用指向鏈表結(jié)點指針的指針操作

  直接首尾交換指針值(兩兩進行)

  一般的是前插法

  實際上根本就不用插入,一次遍歷就可以完成了。

  鏈表的逆序,必將涉及到兩個以上指針,一般用三個指針,

  下面是一個人的程序:

  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;

  }

  算法都是一致,但順序不一樣,這直接點明了鏈表操作的核心——順序,鏈表的算法主要難在順序上。

  逆序操作中,要將一個指針指向前一個節(jié)點,中間必然斷開,這就需要兩個指針指向斷開處的一前一后。

  上面兩個程序都是這樣,不同在于指針移動的位置。

【C語言鏈表逆序方法技巧】相關(guān)文章:

C語言的循環(huán)鏈表和約瑟夫環(huán)09-29

c語言空間換時間優(yōu)化代碼的技巧方法06-19

C語言頭文件避免重復包含的方法技巧08-28

C語言左右法則的技巧10-03

C語言的reduce方法應用10-22

C語言的冒泡排序方法08-22

Java程序調(diào)用C/C++語言函數(shù)的方法07-31

C語言返回多個值的方法07-07

C#數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表的實例代碼10-22

C語言入門的基本學習方法09-29