请高手帮我解释一下,谢谢。。配上注释
答案:1 悬赏:50
解决时间 2021-03-14 23:49
- 提问者网友:迷茫庸人
- 2021-03-14 19:07
#include<stdio.h>
#include<stdlib.h>
#define max_list_size 1000
typedef struct lnode *list_pointer;
typedef struct lnode
{
int data;
list_pointer link;
}
list_node;
void insert(list_pointer *ptr)
{
list_pointer temp;
temp=(list_pointer)malloc (sizeof(list_node));
temp->data = rand()%max_list_size;
temp->link = *ptr;
*ptr = temp;
}
void display(list_pointer ptr)
{
while(ptr)
printf("%5d",ptr->data);
ptr = ptr->link;
}
void BUBBLESORT(list_pointer *ptr)
{
list_pointer p,q,r,s,t;
t=NULL;
s=*ptr;
while(s->link)
{//这行以下三行为初始化部分
p=NULL;
q=s;
r=s->link;
while(r)
{//循环来交换位置,直到得到最大或最小数
if(q->data > r->data)
if(!p)
{
q->link = r->link;
r->link = q;
s=r;
}
else
{
q->link = r->link;
r->link = q;
p->link = r;
}
p=q;
q=r;
r=r->link;
}
p->link = q->link;//将得到最大或最小值插入t所指向链表
q->link = t;
t=q;
}
s->link=t;//循环结束后,s中尚且剩一个最小的元素
t=s;
*ptr=t;
}
int main()
{
int i;
list_pointer ptr=NULL;
printf("结点数:%5的\n", max_list_size);
for(i=0;i!=max_list_size;i++);
insert(&ptr);
display(ptr);
printf("\n\n");
BUBBLESORT(&ptr);
display(ptr);
system("PAUSE") ;
}
最佳答案
- 二级知识专家网友:颜值超标
- 2021-03-14 19:46
这么写的目的是防止,重复宏定义 #if _STDC #define _Cdecl #else #define _Cdecl cdecl #endif 上面代码的意识是如果存在了_STDC则定义_Cdecl否则定义_Cdecl cdecl #if !defined(__VIDEO) 表示如果还没有宏定义_VIDEO执行下面的代码
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯