1樓:問明
void link_order(stu *p_head)stu *pb, *pf, temp;
pf = p_head;
if(p_head == null) {//連結串列為空printf("needn't order.\n");
return ;
if(p_head->next == null) {//連結串列有1個節點
printf("only one print, needn't order.\n");
return ;
while(pf->next != null) {//以pf指向的節點為基準節點
pb = pf->next;//pb從基準點的下一個節點開始while(pb != null) {
if(pf->num > pb->num) {temp = *pf;
*pf = *pb;
*pb = temp;
temp.next = pf->next;
pf->next = pb->next;
pb->next = temp.next;
pb = pb->next;
pf = pf->next;
return ;
2樓:碧海風雲
可以用氣泡排序對連結串列進行排序操作。以下補充了sort函式,以及補充了程式完整執行所需的其他內容
#include
#include
typedef struct _item item;
typedef struct _node node, *list;
void initlist (list *l)
/*可以採用氣泡排序方法對連結串列進行排序*/
void sort(list l) }}
for (p=l->next; p!=null; p=p->next)
puts (p->item.name);
}int listinsertnode (list l, int i, struct _item *e)
if (!p || j>i-1) /* 插入位置不合理:i小於1或者大於表長 */
return 0;
/* 生成新結點,並插入l中 */
s = (list) malloc (sizeof (struct _node));
s->item = *e;
s->next = p->next;
p->next = s;
return 1;
}int main (void) ;
struct _item b = ;
struct _item c = ;
struct _item d = ;
list p;
initlist (&l);
listinsertnode (l, 1, &a);
listinsertnode (l, 1, &b);
listinsertnode (l, 1, &c);
listinsertnode (l, 1, &d);
puts ("排序前連結串列:");
for (p=l->next; p!=null; p=p->next)
puts (p->item.name);
putchar ('\n');
puts ("排序後連結串列:");
sort (l);
}執行結果
3樓:匿名使用者
#include
#include
struct node ;
struct node *creat(int n)//建立連結串列p2->next=null;
return list;
} sort(struct node *list)//連結串列排序,氣泡排序}}
return list;
}void print(struct node *list)}int main()
4樓:僧震博
比較節點內容,然後交換節點的指標就好了;因為單向,所以需要額外的指標來記錄上一個節點的位置
c語言單向連結串列排序如何實現?
5樓:匿名使用者
struct student* printf_sort(struct student *head)
else
}else//不需要交換,則p2、ptemp前進1位}pfinished=p2;}}
C語言連結串列問題,c語言連結串列問題
我不知道你用什麼編譯器,不同的編譯器可能結果不一樣。會提示段錯誤的可能是vc編譯器,建議你除錯下 while p1 p1 num 0 struct student next 這個分號你寫錯了,所以會造成字元錯誤,然後定義連結串列的儲存結構是要用typedef struct student的。在主函式...
C語言連結串列與結構體,c語言結構體與連結串列
北風微風 include include define null 0 define len sizeof struct student struct student int n struct student creat void if n 0 head null p2 next null free ...
c語言連結串列寫約瑟夫環問題,c語言連結串列寫約瑟夫環問題
include include typedef struct node 節點存放一個資料和指向下一個節點的指標 node node link create int n 建立n個節點的迴圈連結串列 p pnext head 最後一個節點指向頭部,形成迴圈連結串列 return head void li...