链表分解单双数c语言代码,编写一程序,将带头结点的单链表拆成一个奇数链表和一个偶数链表...
我寫了一個(gè),你參考參考!
#include
#include
typedef??struct??node
{
int data;
struct node??*next;
}linknode;
typedef??linknode *linklist;
/*頭插法建表*/
linklist creat1()
{
linklist head,s;
int x;
head->next=NULL;
printf("Please input a list and end by 0!\n");
scanf("%d",&x);
while(x)
{
s=(linklist)malloc(sizeof(linknode));
s->data=x;
s->next=head->next;
head->next=s;
scanf("%d",&x);
}
return head;
}
/*尾插法建表*/
linklist creat2 ()
{
linklist head,r,s;
int x;
head->next=NULL;
r=head;
printf("Please int a list and end by 0!\n");
scanf("%d",&x);
while(x)
{
s=(linklist)malloc(sizeof(linknode));
s->data=x;
r->next=s;
r=s;
scanf("%d",&x);
}
r->next=NULL;
return??head;
}
/*打印帶頭結(jié)點(diǎn)單鏈表*/
void print (linklist head)
{
linklist p;
p=head->next;
while(p)
{
printf("%4d",p->data);
p=p->next;
}
printf("\n");
}
void separation(linklist head)
{
linklist head1,head2,p,r,s;
head1->next=NULL;
head2->next=NULL;
r=head1;
s=head2;
p=head->next;
while(p)
{
if(p->data%2!=0)
{
r->next=p;
r=p;
p=p->next;
}
else
{
s->next=p;
s=p;
p=p->next;
}
}
r->next=NULL;
s->next=NULL;
print(head1);
print(head2);
}
/*主函數(shù)*/
main()
{
linklist head;
head=creat2();
print(head);
separation(head);
getch();
}
總結(jié)
以上是生活随笔為你收集整理的链表分解单双数c语言代码,编写一程序,将带头结点的单链表拆成一个奇数链表和一个偶数链表...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 创建nfs服务器启动httpd服务但是访
- 下一篇: 设备驱动中的并发控制-自旋锁