日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言行列倒置算法,循环行列的元素倒置。求指点

發布時間:2023/12/19 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言行列倒置算法,循环行列的元素倒置。求指点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

循環隊列的元素倒置。求指點。

本帖最后由 whdugh 于 2013-01-30 12:29:48 編輯

編寫一個算法,將一個循環隊列(容量為n,元素下標從1~n)的元素倒置。

/*

算法思想:?使用一個棧起到過渡作用。先將sq隊列中元素出隊并將其入棧ss,直到隊列空為止;

然后初始化隊列,將sq->front=sq->rear=n;再出棧并將其入隊列,直到??諡橹埂?/p>

*/void?Reverse(SqQuene?*sq)

{

ELEMTYPE?x;

SqStack?*ss;

ss?=?(SqStack?*)malloc(sizeof(SqStack));?//棧初始化

ss->top?=?-1;

while(sq->front?!=?sq->rear)?????????????//隊不空時,出隊并入棧

{

sq->front?=?(sq->front?+?1)?%?MAXSIZE;

if(sq->front?==?0)????????????????????//隊列元素下標從1到n

sq->front?=?n;???//dgh??n?這里是什么意思??front和rear?指向的位置變化了?

x?=?sq->data[sq->front];

ss->top++;

ss->data[ss->top]?=?x;????????????????//將x入棧

}?????????????????????????????????????????/*sq棧中從棧頂到棧底的元素為f,e,d,c,b,a*/

sq->front?=?sq->rear?=?n;?????????????????/*隊列初始化?為何初始化為n*/???

while(ss->top?>=?0)???????????????????????/*棧不空時,出棧并將元素入隊?*/

{

x?=?ss->data[ss->top];

ss->top--;

sq->rear?=?(sq->rear?+?1)?%?n;

sq->data[sq->rear]?=?x;

}

}

有兩個問題:1.為什么要在第一個循環里面加if判斷語句?if(sq->front==0),然后賦為n?

2.將sq->front=sq->rear=n,這又是為何?菜鳥剛自學數據結構?求高手指點?謝謝

循環隊列

------解決方案--------------------

這個程序應該有一個隱含條件:

第一個while循環之前,應該是sq->front?=?0;?sq->rear?=?n;

樓主的問題:

1.?sq->front?=?(sq->front?+?1)?%?MAXSIZE;這句的含義就是隊頭指針順序后移,直到隊尾

MAXSIZE應該是n,那么當sq->front?=?n?-?1的時候,經過這句賦值,sq->front就成了0,?而此時

n?-?1的下一個元素應該是n;所以有下面的if判斷語句。

2.?經過上一個循環,實際上已經滿足sq->front=sq->rear=n,所以此處是多此一舉。

這句的作用是為后面把棧中的元素彈出到原隊列中作初始化,為n是因為循環中會先進行下標移動,再進行數據處理,?(n?+?1)?%?n?就是?1?了。

整個程序就是利用了棧先入后出的性質實現逆序。

個人認為程序改為這樣比較合適:

/*

算法思想:?使用一個棧起到過渡作用。先將sq隊列中元素出隊并將其入棧ss,直到隊列空為止;

然后初始化隊列,將sq->front=sq->rear=n;再出棧并將其入隊列,直到??諡橹埂?/p>

*/void?Reverse(SqQuene?*sq)

{

ELEMTYPE?x;

SqStack?*ss;

總結

以上是生活随笔為你收集整理的c语言行列倒置算法,循环行列的元素倒置。求指点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。