1樓:匿名使用者
兩個問題:
1、sort函式實現不對,給你改了一下(此處排序用的是冒泡!另:**盡量不要用goto語句!):
//以下函式,無法實現,執行後為何沒有printf 顯示排列後的大小呢
void sort(pnode phead)
pn = pn->pnext;//移位
}pf = pf->pnext;
}pnode p = phead->pnext;
while (null != p)
printf("\n");
}2、main中呼叫sort時,不應該是void sort(pnode phead);,這只是宣告,呼叫應該如下:
sort(phead);
完整**如下:
# include
# include
# include
typedef struct node
node, *pnode; //node等價於struct node pnode等價於struct node *
pnode create_list(void); //建立連結串列
void sort(pnode phead);
int main(void)
//以下函式,無法實現,執行後為何沒有printf 顯示排列後的大小呢
void sort(pnode phead)
pn = pn->pnext;//移位
}pf = pf->pnext;
}pnode p = phead->pnext;
while (null != p)
printf("\n");
}pnode create_list(void)
pnode ptail = phead;
ptail->pnext = null;
printf("請輸入您需要生成的連結串列節點的個數: len = ");
scanf("%d", &len);
for (i=0; idata = val;
ptail->pnext = pnew;
pnew->pnext = null;
ptail = pnew;
}return phead;
}-------------------------------
測試結果:
請輸入您需要生成的連結串列節點的個數: len = 7
請輸入第1個節點的值: 6
請輸入第2個節點的值: 5
請輸入第3個節點的值: 7
請輸入第4個節點的值: 4
請輸入第5個節點的值: 8
請輸入第6個節點的值: 3
請輸入第7個節點的值: 9
3 4 5 6 7 8 9
press any key to continue
2樓:匿名使用者
盡量少用goto
程式沒怎麼看懂,道理給你說一下
排序,在c中基本上用的就是幾個排序方式,冒泡,選擇等**都是現成的,主要是改幾個地方而已
一般是陣列的排序,交換兩個單元的數值
那麼連結串列也是一樣,基本原理也是交換兩個單元的數值關鍵是怎麼交換,其實連結串列只要知道只想這個單元的指標,也就是那個next指標
比較完成後,符合條件交換這個指標即可
怎麼來獲取
其實這個也不難,就是比的時候,用
next->data來比較,交換next地值即可
將新結點插入連結串列
struct student insert struct student head,struct student new else 如果原來連結串列非空,則將新結點插入適當位置,使新連結串列資料仍保持公升序 if new num p num else 如果之前找插入位置的迴圈是因為已經找到連結串列尾...
中國各省面積大小排名
排名次 各省市區直轄市 面積 萬平方公里 1 新疆維吾爾自治區 166 2 自治區 122.8 3 內蒙古自治區 118.3 4 青海省 72.23 5 四川省 48.14 6 黑龍江省 45.48 7 甘肅省 45.44 8 雲南省 38.33 9 廣西壯族自治區 23.6 10 湖南省 21.1...
super junior m成員按年齡大小排列
嗯 問的是sjm 樓上的你回sj幹啥。嗯從小到大 henry 圭賢 厲旭 始源 始源真實生日是86年4月的 比東海大 但是官方給的是87年2月 東海 周覓 銀赫 晟敏。奎賢 基範 麗旭 始源 東海 恩赫 晟敏 神童 強仁 藝聲 韓庚 希澈 李特。是從小到大的順序。super junior 成員的年齡...