将一个链表中结点的值按奇偶拆分,使其中一个链表结点的值为偶数,另一个为奇数
来源:互联网 发布:淘宝香水嗅觉系真假 编辑:程序博客网 时间:2024/06/06 00:37
这是一道笔试题,其实也挺简单,但是在当时笔试的时候,却怎么也想不出做不出来,最后还是写错了。事后在机器上又写了一下,这算是一个总结吧。
综其原因,还是自己平时程序写的少,想的少,从而导致在关键时候由于紧张想不出写不出。
平时就多练习吧。菜鸟多努力!
这个程序实现的功能就是:将一个链表中结点的值按奇偶拆分,使其中一个链表结点的值为偶数,另一个为奇数
具体程序如下:
#define _CRT_SECURE_NO_WARNINGS#include <stdio.h>#include <stdlib.h>#include <assert.h>typedef struct node{int value;struct node *next;}Node,*pNode;pNode CreateList(int n){pNode head,p,new;int i;printf("链表节点的值:");head=(pNode)malloc(sizeof(Node));scanf("%d",&(head->value));head->next=NULL;p=head;for (i=0;i<n-1;i++){new=(pNode)malloc(sizeof(Node));scanf("%d",&(new->value));p->next=new;p=new;}p->next=NULL;return head;}void display(pNode head){while (head!=NULL){printf("%d ",head->value);head=head->next;}printf("\n");}void DivideList(pNode head,Node **odd,Node **even){pNode p,q,r;assert(head!=NULL);while (head!=NULL){p=head;if (p->value%2==0){if (*even==NULL){*even=p;q=*even;}head=head->next;q->next=p;q=p;q->next=NULL;}else{if (*odd==NULL){*odd=p;r=*odd;}head=head->next;r->next=p;r=p;r->next=NULL;}}}void DestoryList(pNode head){pNode p;while(head!=NULL){p=head;head=head->next;free(p);}free(head);}int main(){int n;pNode head;pNode odd=NULL,even=NULL;printf("链表长度:");scanf("%d",&n);head=CreateList(n);//display(head);DivideList(head,&odd,&even);display(odd);display(even);DestoryList(odd);DestoryList(even);system("pause");return 0;}
0 0
- 将一个链表中结点的值按奇偶拆分,使其中一个链表结点的值为偶数,另一个为奇数
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- 将带有头结点head的单链表中序号为奇数的倒序,偶数不变
- 设计一个递归算法,删除不带头结点的单链表中所有值为x的结点
- 设计一个递归算法,删除不带头结点的单链表L中所有值为x的结点
- 将数组的奇数移到前面偶数到后面&&输出链表的倒数第k个结点
- 项目一--删除结点值为X的结点
- 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
- 输入一个单向链表,输出该链表中倒数第k 个结点。链表的倒数第0个结点为链表的尾指针。
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针。
- 13.输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表 的尾指针
- 输入一个单向链表,输出该链表中倒数第 k 个结点。链表的倒数第0 个结点为链表的尾指针。
- 一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针
- 输入一个单向链表,输出该链表中倒数第k个结点。链表的倒数第0个结点为链表的尾指针
- 创建一个结点个数为n的链表,删除指定的元素
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 输入一个链表的头结点,从尾到头反过来输出每个结点的值
- 快速排序
- 第82篇 webrtc一对一研究(十)及php
- 最简单的webview监听及传值
- 数据结构示例之用链表实现栈
- Linux命令之"df"
- 将一个链表中结点的值按奇偶拆分,使其中一个链表结点的值为偶数,另一个为奇数
- canvas学习笔记(一)——关于css设置canvas画布大小的问题
- 逻辑回归
- Appium For Android and IOS By Java
- 微信的开发之初学问题总结
- Java_socket通信基础补充
- Windows10专业版任务栏右下角按钮左键无效右键有效的问题的解决
- 芒果TV发布2017黄金IP“芒果练习生”计划
- IntelliJ IDEA 2016