链表的合并与反转
来源:互联网 发布:蜂窝移动数据当期时间 编辑:程序博客网 时间:2024/06/05 08:28
将两个递增的链表合并为一个递增的链表,然后将这个链表反转
第一行输入一个数n,第二行输入n个递增的数,第三行输入m,再输入m个数,最后输出这n+m个数的递增的链表与递减的
代码如下:
#include <iostream>#include <cstdio>#include <algorithm>#include <vector>#include <cstring>#include <map>#include <cmath>#include <string>#include <queue>#include <stack>#include <math.h>using namespace std;const int N = 905;typedef struct LNode{double data;LNode *next;}LNode, *LinkList;//LinkList p;void InitList(LinkList L){L = new struct LNode;L->next = NULL;}void InitList( LinkList L,int n,double an[]){LinkList p, s;L->next = NULL;//L = new struct LNode;p = L;for (int i = 1; i <= n; i++){s = new LNode;s->data = an[i];p->next = s;p = s;p->next = NULL;}}void ListInsert(LinkList &L, int i, double e){LinkList p, s;int j;p = L;j = 0;while (p && (j < i-1 )){p = p->next; j++;}if (!p || j > i - 1)return;//ERROR;s = new LNode;s->data = e;s->next = p->next;p->next = s;return;//OK}void printf(LinkList L){LinkList p1;p1 = L;while ( p1->next!=NULL){p1 = p1->next;cout << p1->data << " ";}cout << endl;}void hebin(LinkList L1, LinkList L2){LinkList p1, p2;p1 = L1->next;p2 = L2->next;int i;i = 1;while ( p2 != NULL){p1 = L1->next;i = 1;while (p1 != NULL&&p1->data < p2->data&&p1 != NULL){i++;p1 = p1->next;}ListInsert(L1, i, p2->data);p2 = p2->next;}}void nizhuan(LinkList L1, LinkList L2){if (L1->next == NULL){L2->next = L1;return;}nizhuan(L1->next,L2);(L1->next)->next = L1;L1->next = NULL;return;}int main(){double an[5000];int n;int i;double a;LinkList L1, L2, L3;L1 = new LNode;L2 = new LNode;L3 = new LNode;while (cin >> n){for (i = 1; i <= n; i++){cin >> an[i];}InitList(L1, n, an);cin >> n;for (i = 1; i <= n; i++){cin >> an[i];}InitList(L2, n, an);//cout << L1->data << endl;printf(L1);printf(L2);//cout << "0asd\n";hebin(L1, L2);//cout << "1asd\n";printf(L1);nizhuan(L1->next, L1);printf(L1);}return 0;}
阅读全文
0 0
- 链表的合并与反转
- 链表的删除 合并 排序 反转
- 《单向链表》----------------------合并,反转
- 链表相关面试题目 反转 合并
- 链表的建立与反转(递归反转和非递归反转)
- 《剑指offer》学习之--反转链表与合并两个排序链表
- 链表的反转与旋转
- 剑指Offer:反转链表、合并两个排序的链表
- 链表反转,合并和查倒数第几个的值。
- 反转链表后输出、合并两个排序链表、树的子结构 -- 漫漫算法路 刷题篇
- 链表----增加删除节点、链表反转、链表合并
- 链表常用操作 (定义,创建,反转,合并,交叉)
- 单链表反转 - 有序链表合并 - 子树包含
- LinkedList与链表反转
- 链表的反转
- 链表的反转
- 链表的反转
- 链表的反转
- 很多friend,j2ee的web项目搞了这么多年,为什么从来没用到过多线程?自己从来没有动手自己写过多线程?
- 陌陌面试
- 使用express+mockjs搭建服务器和模拟数据
- ubuntu下cpu数,核心数,线程数的关系
- Socket通信
- 链表的合并与反转
- 最常用的几个Pycharm快捷键
- Spring Cloud 的 Hystrix 在 Feign上使用 Hystrix功能
- 我的互联网价值观、方法论和个人实践(3)-衣食住行
- Thrift基础使用
- HDOJ HDU 1061 Rightmost Digit
- font简写:body{font:12px/15px Arial}
- 九度 题目1198:a+b
- TwoSum-Leetcode