请修改append函数,利用这个函数实现
2012-05-21 23:44
323 查看
两个非降序链表的并集,1->2->3 和 2->3->5 并为 1->2->3->5
另外只能输出结果,不能修改两个链表的数据。
另外只能输出结果,不能修改两个链表的数据。
#include <stdio.h> #include <stdlib.h> #include <malloc.h> struct Node { int num; Node * next; }; Node * createTail() { int x; Node *head = NULL, *p = NULL, *tail = NULL; puts("\nplease enter some digits(end of '.'):"); while( scanf("%d",&x) ) { p = (Node *)malloc(sizeof(Node)); p->num = x; p->next = NULL; if( NULL == head ) { tail = p; head = tail; } else { tail->next = p; tail = p; } } getchar(); return head; } Node * CombinationNode(Node* head1, Node* head2) { Node *head,*tail,*p = head1,*q = head2,*s; if( NULL == p ) return q; if( NULL == q ) return p; tail = p; if( p->num > q->num) tail = q; head = tail; while( NULL != p && NULL != q ) { if(p->num <= q->num ) { s = p; p = p->next; } else { s = q; q = q->next; } tail->next = s; tail = s; } if( NULL == p ) p = q; s = p; tail->next = s; return head; } void printHead(Node *head) { if( NULL == head ) return; printf("List: "); while(head) { printf("%d->",head->num); head = head->next; } puts("NUL"); } void main( void ) { Node* head1,*head2,*head; head1 = createTail(); printHead(head1); head2 = createTail(); printHead(head2); head = CombinationNode(head1,head2); printHead(head); } ////////////////////////////////////////////////////////////////////////////// please enter some digits(end of '.'): 1 3 5 7 9 . List: 1->3->5->7->9->NUL please enter some digits(end of '.'): 2 4 5 6 7 8 9 . List: 2->4->5->6->7->8->9->NUL List: 1->2->3->4->5->5->6->7->7->8->9->9->NUL Press any key to continue //////////////////////////////////////////////////////////////////////////////
相关文章推荐
- 42.请修改append函数,利用这个函数实现(链表):
- 请修改append函数,利用这个函数实现
- 36. 微软面试题:请修改append函数, 利用函数实现(链表)
- 请修改append 函数,利用这个函数实现:两个非降序链表的并集,1->2->3 和2->3->5 并为1->2->3->5 另外只能输出结果,不能修改两个链表的数据。
- 【编程题目】请修改 append 函数,利用这个函数实现两个非降序链表的并集
- 利用ini_set()函数实现对php配置文件的修改
- 可视化webpart基础开发——利用事件接收器实现同步操作两个文档库(添加、删除、修改文档)
- peoplesoft中利用checkbox实现多值选择,修改
- 利用python的eval()函数实现控制台计算器,并使用pyinstaller打包exe
- 利用Oracle分析函数实现多行数据合并为一行
- 利用JQuery的load函数动态加载其它页面的内容的实现代码
- 利用opencv实现截图函数
- 利用函数递归实现无限分类
- C语言:实现一个函数itoa(int n,char s[]),将整数n这个数字转换为对应的字符串,保存到s中
- 利用recv和readn函数实现readline函数
- 在android中利用多线程实现对控件的更新(动态修改文本框中的值)。简述原理并上传代码。 .
- 用c语言实现 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
- ios中利用协议实现回调函数功能
- windwos键盘的过滤(Hook键盘中断反过滤与利用IOAPIC重定位修改处理函数)
- 动态修改 C 语言函数的实现