02-線性結構3 Reversing Linked List

02-線性結構3?Reversing Linked List?(25 分)

Given a constant?K?and a singly linked list?L, you are supposed to reverse the links of every?K?elements on?L. For example, given?Lbeing 1→2→3→4→5→6, if?K=3, then you must output 3→2→1→6→5→4; if?K=4, you must output 4→3→2→1→5→6.

Input Specification:

Each input file contains one test case. For each case, the first line contains the address of the first node, a positive?N?(≤10?5??) which is the total number of nodes, and a positive?K?(≤N) which is the length of the sublist to be reversed. The address of a node is a 5-digit nonnegative integer, and NULL is represented by -1.

Then?N?lines follow, each describes a node in the format:

Address Data Next

where?Address?is the position of the node,?Data?is an integer, and?Next?is the position of the next node.

Output Specification:

For each case, output the resulting ordered linked list. Each node occupies a line, and is printed in the same format as in the input.

Sample Input:

00100 6 4

00000 4 99999

00100 1 12309

68237 6 -1

33218 3 00000

99999 5 68237

12309 2 33218

Sample Output:

00000 4 33218

33218 3 12309

12309 2 00100

00100 1 99999

99999 5 68237

68237 6 -1

Code:


#include <stdio.h>

#define MAX 100000

typedef struct{

? ? int data;

? ? int next;

}Node;

//計算在數組中的元素個數

int CountNum(Node *list,int plist);

//反轉元素

int Reverse(Node *list,int num,int plist,int k);

//打印元素

void Print(Node *list,int plist);

int main(){

? ? Node list[MAX];

? ? int plist,n,k;

? ? scanf("%d%d%d",&plist,&n,&k);

? ? int addr,data,next;

? ? while(n>0){

? ? ? ? scanf("%d%d%d",&addr,&data,&next);

? ? ? ? list[addr].data=data;

? ? ? ? list[addr].next=next;

? ? ? ? n--;

? ? }

? ? int num=CountNum(list,plist);

? ? int newplist=Reverse(list,num,plist,k);

? ? Print(list,newplist);

? ? return 0;

}

int Reverse(Node *list,int num,int plist,int k){

? ? int preNode,curNode,nextNode;

? ? preNode=-1;

? ? curNode=plist;

? ? nextNode=list[curNode].next;

? ? int head=-1,lasthead;

? ? for (int i=0;i<num/k;i++){

? ? ? ? lasthead=head;

? ? ? ? head=curNode;

? ? ? ? for(int j=0;j<k;j++){

? ? ? ? ? ? list[curNode].next=preNode;

? ? ? ? ? ? preNode=curNode;

? ? ? ? ? ? curNode=nextNode;

? ? ? ? ? ? nextNode=list[curNode].next;

? ? ? ? }

? ? ? ? if (i==0) plist=preNode;

? ? ? ? else list[lasthead].next=preNode;

? ? }

? ? list[head].next = curNode; //不用逆轉的剩余部分加上

? ? return plist;

}

int CountNum(Node *list,int plist){

? ? int c=1;

? ? while((plist=list[plist].next)!=-1) c++;

? ? return c;

}

void Print(Node *list,int plist){

? ? while((list[plist].next)!=-1){

? ? ? ? printf("%05d %d %d\n",plist,list[plist].data,list[plist].next);

? ? ? ? plist = list[plist].next;

? ? }

? ? printf("%05d %d %d\n",plist,list[plist].data,list[plist].next);

}

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末搀捷,一起剝皮案震驚了整個濱河市暖呕,隨后出現(xiàn)的幾起案子舔痕,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件存捺,死亡現(xiàn)場離奇詭異贼邓,居然都是意外死亡,警方通過查閱死者的電腦和手機热鞍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門葫慎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人薇宠,你說我怎么就攤上這事偷办。” “怎么了澄港?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵椒涯,是天一觀的道長。 經常有香客問我回梧,道長废岂,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任狱意,我火速辦了婚禮湖苞,結果婚禮上,老公的妹妹穿的比我還像新娘详囤。我一直安慰自己财骨,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布藏姐。 她就那樣靜靜地躺著隆箩,像睡著了一般。 火紅的嫁衣襯著肌膚如雪羔杨。 梳的紋絲不亂的頭發(fā)上捌臊,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音问畅,去河邊找鬼娃属。 笑死六荒,一個胖子當著我的面吹牛,可吹牛的內容都是我干的矾端。 我是一名探鬼主播掏击,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秩铆!你這毒婦竟也來了砚亭?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤殴玛,失蹤者是張志新(化名)和其女友劉穎捅膘,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體滚粟,經...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡寻仗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了凡壤。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片署尤。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖亚侠,靈堂內的尸體忽然破棺而出曹体,到底是詐尸還是另有隱情,我是刑警寧澤硝烂,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布箕别,位于F島的核電站,受9級特大地震影響滞谢,放射性物質發(fā)生泄漏串稀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一爹凹、第九天 我趴在偏房一處隱蔽的房頂上張望厨诸。 院中可真熱鬧,春花似錦禾酱、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至陷遮,卻和暖如春滓走,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帽馋。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工搅方, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留比吭,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓姨涡,卻偏偏與公主長得像衩藤,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子涛漂,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內容

  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,451評論 0 13
  • 走得時候 說什么都是多余 所有情緒都在目光里 而你 連頭也沒抬
    居戎閱讀 313評論 0 0
  • 昨晚孩子又像往常一樣匈仗,在臨睡前到我房間里跟我聊天瓢剿。昨晚聊的是MC的制作流程。整個制作過程足足講了半個小時悠轩,...
    水到渠成111閱讀 145評論 0 0
  • 一火架、利:1鉴象、民族自信力 2、在詩歌中尋找遠方距潘,鼓勵自我炼列,淡然面對。 3音比、縱向傳承俭尖,知道文化的源頭,與知識更好地融合...
    囚歌歌歌閱讀 368評論 0 0
  • 經常洞翩,讀了關于愛情的文章之后我總會覺得很孤獨稽犁。因為是單身久了,看到了情侶的甜蜜和單身者的自白我都會被觸動骚亿。我覺得我...
    灑落的陽光閱讀 96評論 0 1