用create函数创建一个双向链表,手动输入自然数,当输入到0的时候,create过程结束 打印出双向链表。。。
用create函数创建一个双向链表,手动输入自然数,当输入到0的时候,create过程结束打印出双向链表用Qiucksort对双向链表排序,把排序链表打印我编了1.用cr...
用create函数创建一个双向链表,手动输入自然数,当输入到0的时候,create过程结束
打印出双向链表
用Qiuck sort对双向链表排序,把排序链表打印
我编了
1.用create函数创建一个双向链表,手动输入自然数,当输入到0的时候,create过程结束
打印出双向链表
2.链表打印
能不能帮我编一下quicksort的排序?我把我的程序给你?
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
struct Num
{
int data;
struct Num *next;
struct Num *prior;
}DLNum;
struct Num *Create_Num();/*新建链表*/
void Print(struct Num*head);/*打印*/
int main(void)
{
struct Num *head,*p,*high;
int data;
int size=sizeof(struct Num);
head=Create_Num();
Print(head);
return 0;
}
struct Num *Create_Num()/*新建链表*/
{
int data;
int size=sizeof(struct Num);
struct Num *head,*tail,*p;
head=tail=NULL;
scanf("%d",&data);
while(data!=0)
{
p=(struct Num*)malloc(size);
p->data=data;
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&data);
}
return head;
}
void Print(struct Num*head)/*打印*/
{
struct Num *ptr;
if(head==NULL)
{
printf("\n No records\n");
return ;
}
for(ptr =head;ptr!=NULL;ptr=ptr->next)
printf("%d<->",ptr->data);
}
帮我补充一下 我这个回答给你10分,那个再给你20分 行吗?
上海火车站春运保安活动,维护秩序。2个月,18号开始,黑皮鞋,身份证,短发,无染头发,无纹身,身高穿皮鞋1.75米以上,8个小时,20元每小时,一天160包吃包住。工资周结,压一星期工资。不要戴眼镜。联系我q或者电话1843563554668报名发身高,姓名,加保安,加身份证号码到我手机。官方活动。戴眼镜,有案底千万别来耽误我时间。17号集合带上身份证,18号上岗! 展开
打印出双向链表
用Qiuck sort对双向链表排序,把排序链表打印
我编了
1.用create函数创建一个双向链表,手动输入自然数,当输入到0的时候,create过程结束
打印出双向链表
2.链表打印
能不能帮我编一下quicksort的排序?我把我的程序给你?
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
struct Num
{
int data;
struct Num *next;
struct Num *prior;
}DLNum;
struct Num *Create_Num();/*新建链表*/
void Print(struct Num*head);/*打印*/
int main(void)
{
struct Num *head,*p,*high;
int data;
int size=sizeof(struct Num);
head=Create_Num();
Print(head);
return 0;
}
struct Num *Create_Num()/*新建链表*/
{
int data;
int size=sizeof(struct Num);
struct Num *head,*tail,*p;
head=tail=NULL;
scanf("%d",&data);
while(data!=0)
{
p=(struct Num*)malloc(size);
p->data=data;
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&data);
}
return head;
}
void Print(struct Num*head)/*打印*/
{
struct Num *ptr;
if(head==NULL)
{
printf("\n No records\n");
return ;
}
for(ptr =head;ptr!=NULL;ptr=ptr->next)
printf("%d<->",ptr->data);
}
帮我补充一下 我这个回答给你10分,那个再给你20分 行吗?
上海火车站春运保安活动,维护秩序。2个月,18号开始,黑皮鞋,身份证,短发,无染头发,无纹身,身高穿皮鞋1.75米以上,8个小时,20元每小时,一天160包吃包住。工资周结,压一星期工资。不要戴眼镜。联系我q或者电话1843563554668报名发身高,姓名,加保安,加身份证号码到我手机。官方活动。戴眼镜,有案底千万别来耽误我时间。17号集合带上身份证,18号上岗! 展开
- 你的回答被采纳后将获得:
- 系统奖励15(财富值+成长值)+难题奖励10(财富值+成长值)+提问者悬赏10(财富值+成长值)
1个回答
展开全部
在那个函数里面m是计算一共有多少个节点,然后每两个相邻的数字比较。例1和2比,然后2和3比,3和4比。。。以此类推。当一链表循环比较的次数等于节点数,数字会自然而然由大到小排列~~ 希望你你能理解 要是学过数据结构你应该会明白这种算法的~~
整个代码:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
void Qiuck_sort(struct Num*head);
struct Num
{
int data;
struct Num *next;
struct Num *prior;
}DLNum;
struct Num *Create_Num();/*新建链表*/
void Print(struct Num*head);/*打印*/
int main(void)
{
struct Num *head,*p,*high;
int data;
int size=sizeof(struct Num);
head=Create_Num();
Qiuck_sort(head);
Print(head);
return 0;
}
struct Num *Create_Num()/*新建链表*/
{
int data;
int size=sizeof(struct Num);
struct Num *head,*tail,*p;
head=tail=NULL;
scanf("%d",&data);
while(data!=0)
{
p=(struct Num*)malloc(size);
p->data=data;
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&data);
}
return head;
}
void Print(struct Num*head)/*打印*/
{
struct Num *ptr;
if(head==NULL)
{
printf("\n No records\n");
return ;
}
for(ptr =head;ptr!=NULL;ptr=ptr->next)
printf("%d<->",ptr->data);
}
void Qiuck_sort(struct Num*head)
{
struct Num *p;
int temp,m=0,n;
if(head==NULL)
{
printf("\n No records\n");
return ;
}
for(p =head;p!=NULL;p=p->next)
m++;
for(n=0;n<=m;n++)
{
for(p =head;p->next!=NULL;p=p->next)
{
if(p->next->data <= p->data)
{
temp=p->next->data;
p->next->data=p->data;
p->data=temp;
}
}
}
}
整个代码:
#include<stdio.h>
#include <stdlib.h>
#include<string.h>
void Qiuck_sort(struct Num*head);
struct Num
{
int data;
struct Num *next;
struct Num *prior;
}DLNum;
struct Num *Create_Num();/*新建链表*/
void Print(struct Num*head);/*打印*/
int main(void)
{
struct Num *head,*p,*high;
int data;
int size=sizeof(struct Num);
head=Create_Num();
Qiuck_sort(head);
Print(head);
return 0;
}
struct Num *Create_Num()/*新建链表*/
{
int data;
int size=sizeof(struct Num);
struct Num *head,*tail,*p;
head=tail=NULL;
scanf("%d",&data);
while(data!=0)
{
p=(struct Num*)malloc(size);
p->data=data;
p->next=NULL;
if(head==NULL)
head=p;
else
tail->next=p;
tail=p;
scanf("%d",&data);
}
return head;
}
void Print(struct Num*head)/*打印*/
{
struct Num *ptr;
if(head==NULL)
{
printf("\n No records\n");
return ;
}
for(ptr =head;ptr!=NULL;ptr=ptr->next)
printf("%d<->",ptr->data);
}
void Qiuck_sort(struct Num*head)
{
struct Num *p;
int temp,m=0,n;
if(head==NULL)
{
printf("\n No records\n");
return ;
}
for(p =head;p!=NULL;p=p->next)
m++;
for(n=0;n<=m;n++)
{
for(p =head;p->next!=NULL;p=p->next)
{
if(p->next->data <= p->data)
{
temp=p->next->data;
p->next->data=p->data;
p->data=temp;
}
}
}
}
来自:求助得到的回答
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询