如何用c語言實現單連結串列的逆置

時間 2021-08-30 10:38:45

1樓:溪貝0號

扣著的是頭節點(頭子)

車是首節點(首子)

馬是次節點(次子)

牙籤細的是指標指向,香頭髮黑的是指向,鐵頭細的是指向。

以下是while迴圈(條件:香頭指向不為空)第一個迴圈把馬弄到車前面,

第二個迴圈把相弄到馬前面

第三個迴圈把士弄到相前面

直到香指向為空後停止迴圈。

**如下:只需要一個首結點phead,就能把連結串列找到,並倒置。具體**如下

p香=phead->pnext;

p鐵=p香->pnext;

p香->pnext=null;

p香=p鐵

while(p香 !=null)

p鐵=p香->pnext;

p香->pnext=phead->pnext;

phead->pnext=p香;

p香=p鐵;

對照偽演算法(三步四迴圈),和上面的**是一一對應的:

第一步:香頭指向首子,鐵頭指向次子

第二步:刪掉首子指向次子(鐵頭所指向的那個子)的牙籤第三步:香頭跟著鐵頭

以下迴圈條件:(條件:香頭指向不為空)

迴圈4:香頭跟著鐵頭

自己用道具操作幾遍,然後把流程背會,以後自己根據流程寫**即可。

2樓:匿名使用者

1、演算法的核心就是reverse函式,其它的都是輔助建立連結串列和輸出連結串列的。從資料結構的定義來看這是一個帶頭節點的連結串列。要弄的十分明白要耐心點畫圖看看。

2、思路:

head是指向頭結點的

p=head; //p最開始指向頭結點

s=p->next; //s最開始指向第一個節點

while(s->next!=null)//只要沒有到最後一個元素就繼續。最後一個元素的next肯定為null

s->next=p; //當最後一個的時候,還是要指向她的前一個。

head->next->next=null;//頭指標的下一個是指向原來的第一個。逆向後肯定是最後的那個了。所以最後的一個的next=null就明瞭了。

head->next=s;//s是逆序前的最後一個,逆序後是第一個,所以用頭指向他

3樓:匿名使用者

//帶頭單連結串列p = head->next ;head->next = 0 ;while(p)//至此逆轉完成。

4樓:匿名使用者

#include "stdio.h"

#include"malloc.h" typedef struct node

link; link *creat(int n) //建立連結串列p->next=null;

return head;

} void reverse(link *head)//原地置換s->next=p;

head->next->next=null;//收尾head->next=s;//賦頭

} void display(link *head)//顯示連結串列內容printf("\n");

} void main()

5樓:匿名使用者

#include

#include

#include

#include

#define list_init_length 10

#define ok 1

typedef int elemtype;

typedef struct cirlnode

cirlnode,*cirlinklist;

構造 單連結串列 l

//end of for

} //end of createlist_l() function

將單連結串列逆置,並返回 ok

// while 結束

l= t;//

return ok;

} // contray_cirl

void main() //main() 函式

contray_cirl(l);

cout<<"逆置後的單連結串列l如下:"

cout<

getch();

}//end of main() function

下面是用c語言編寫的對不帶頭結點的單連結串列進行就地逆置的演算法,求大神詳細解釋

6樓:看不見淚痕

void reverse(linklist &l)

l = p;  // 指向逆置後的頭節點}

如何用c語言實現傳遞函式的Z變換

可以自己編寫每個函式,把函式作為引數傳遞 在matlab中怎樣把傳遞函式z變換 從離散轉換為連續在控制工程裡有時會用得到,因為雖然控制器是離散的但被控物件是連續的,所以d2c是控制工具箱函式,以下例子中tf,tfdata都是控制工具箱的函式 以下是z變換到s變換 dsys tf 1 0 1 1 1 ...

c語言 用指標方法實現3 3矩陣的轉置

問明 include include using namespace std int main void move int pointer 函式宣告int a 3 3 i,j int p cout 請輸入矩陣元素 for j 0 j 3 j cin a j cout 輸出原矩陣 cout j cou...

資料結構 C語言單連結串列的合併 100分

include include include typedef struct list list void creatlist list p,int length else else r r next void showlist list p printf n void merlist list p...