c语言编程单向链表排序,【分享】C语言 简单链表创建 排序 输出
[Asm] 純文本查看 復制代碼#include
#include//為動態分配提供函數庫
typedef struct node {
int num;//數據域
struct node *next;//后繼指針
}node;
void create();//創建鏈表
void sort();//排序
void print();//輸出
node *head = NULL;//初始化鏈表頭指針
int main(void)
{
create();//調用創建函數
return 0;
}
void create()
{
head = (node*)malloc(sizeof(node));//動態分配內存
if (head == NULL)//分配失敗時退出程序
return NULL;
node *q, *p;
p = head;
p->num = -1;
while (1) {
q = (node*)malloc(sizeof(node));
if (q == NULL)
return NULL;
q->next = NULL;
scanf("%d", &q->num);
if (q->num == -1)//輸入-1時程序停止輸入
break;
p->next = q;
p = q;
}
free(q);//釋放無用結點的內存
q = NULL;//避免野指針
p->next = NULL;
sort();
}
void sort()
{
node *q;
int judge = -1;
node sorting;
while (1) {
judge = 0;
q = head->next;
while (q->next) {
if (q->num > q->next->num)
{
judge = 1;
sorting.num = q->num;
q->num = q->next->num;
q->next->num = sorting.num;
}
q = q->next;
};
if (!judge)
break;
}
print();
}
void print()
{
node *p = head->next;
while (p) {
printf("%d\t", p->num);
p = p->next;
}
}
!
總結
以上是生活随笔為你收集整理的c语言编程单向链表排序,【分享】C语言 简单链表创建 排序 输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言错误指导,c语言编程指导.pdf
- 下一篇: c语言接受socket发送尾部有乱码,C