创建随机数链表
来源:互联网 发布:大学生沉迷网络 编辑:程序博客网 时间:2024/06/13 21:43
编写自定义函数:建立一个带有头结点head的有20个结点的链表,20个结点所需数值由随机数产生。
编写自定义函数:建立两个链表,把存有数据的链表中的偶数存入一个链表,奇数存入另一个链表中。
编写主函数调用上述两个函数并可输出三个链表中的数据。
完整的代码如下:
- #include "iostream"
- using namespace std;
- #include "time.h"
- struct node
- {
- int data;
- node *next;
- };
- node *head=NULL;
- void InsertNode(node* &head,int value)
- {
- if(head==NULL)
- {
- head=(node *)malloc(sizeof(node));
- if(head==NULL)
- {
- printf("malloc failed");
- return ;
- }
- else
- {
- head->data=value;
- head->next=NULL;
- }
- }
- else
- {
- node *temp=(node *)malloc(sizeof(node));
- if(temp==NULL)
- {
- printf("malloc failed");
- return ;
- }
- else
- {
- temp->data=value;
- temp->next=head;
- head=temp;
- }
- }
- return ;
- }
- void Insert(int n)
- {
- srand( (unsigned)time( NULL ) ); //初始化随机数
- for(int i=0;i<n;i++)
- InsertNode(head,rand());
- node *p=(node *)malloc(sizeof(node));
- p->next=head;
- head=p;
- printf("所有的随机数为: ");
- p=head->next; //输出测试
- while(p)
- {
- printf("%d ",p->data);
- p=p->next;
- }
- printf("/n/n");
- return ;
- }
- void odd_even()
- {
- node *p=head->next;
- node *head_odd,*head_even,*q,*t;
- head_odd=NULL;
- head_even=NULL;
- while(p)
- {
- if(p->data%2==0)
- {
- if(head_even==NULL)
- {
- head_even=(node *)malloc(sizeof(node));
- if(head_even==NULL)
- {
- printf("malloc failed");
- return ;
- }
- else
- {
- head_even->data=p->data;
- head_even->next=NULL;
- q=head_even;
- }
- }
- else
- {
- node *temp=(node *)malloc(sizeof(node));
- if(temp==NULL)
- {
- printf("malloc failed");
- return ;
- }
- else
- {
- temp->data=p->data;
- q->next=temp;
- temp->next=NULL;
- q=q->next;
- }
- }
- }
- else
- {
- if(head_odd==NULL)
- {
- head_odd=(node *)malloc(sizeof(node));
- if(head_odd==NULL)
- {
- printf("malloc failed");
- return ;
- }
- else
- {
- head_odd->data=p->data;
- head_odd->next=NULL;
- t=head_odd;
- }
- }
- else
- {
- node *temp=(node *)malloc(sizeof(node));
- if(temp==NULL)
- {
- printf("malloc failed");
- return ;
- }
- else
- {
- temp->data=p->data;
- t->next=temp;
- temp->next=NULL;
- t=t->next;
- }
- }
- }
- p=p->next;
- }
- q=head_even;
- t=head_odd;
- printf("其中偶数为: ");
- while(q)
- {
- printf("%d ",q->data);
- q=q->next;
- }
- printf("/n/n");
- printf("其中奇数为: ");
- while(t)
- {
- printf("%d ",t->data);
- t=t->next;
- }
- printf("/n/n");
- }
- int main(void)
- {
- Insert(20);
- odd_even();
- system("pause");
- return 0;
- }
运行的结果如下:
- 创建随机数链表
- 创建随机数
- 创建随机数
- JS创建随机数
- Random函数创建随机数
- JS创建随机数
- Crypt Api创建随机数
- 随机数的创建使用
- 使用Random函数创建随机数
- 使用Random函数创建随机数
- C++中随机数的创建
- 创建随机数,对象,数字,字符串
- Qt创建不重复随机数
- sql 循环+随机数创建数据
- [ --> C Language<-- ] 随机数链表排序
- 创建一个将某个数分配为多少份的随机数的表值函数
- 利用JavaScript创建随机数与随机图片
- 利用JavaScript创建随机数与随机图片
- qsort函数简介
- 随机生成100万个数,排序后保存在文件中
- VS制作安装包
- UltraEdit FTP 无法列文件目录问题
- vim 终端间复制
- 创建随机数链表
- 我是傻,总是一而再三的去相信。
- MySQL下MyBatis通过Generator生成Dao和Model类
- 关于EAS的tabPanel容器隐藏选项卡的问题
- 用指向指针方法对N个字符串进行排序并输出
- HashMap终极解决
- Linux 内核源码中likely()和unlikely()释疑
- 一些网站收藏
- 快速排序、希尔排序、插入排序、选择排序、归并排序、堆排序总结