单链表(创建,打印,逆序,合并两个有序的链表)
来源:互联网 发布:淘宝女式薄绒内衣套装 编辑:程序博客网 时间:2024/05/15 01:07
#include<iostream>using namespace std;const int N=6;typedef int DataType;typedef struct node{ DataType data;struct node* next;}LinkedNode,*LinkList;LinkList CreateList(DataType a[N]){LinkedNode* ListHead=new LinkedNode;ListHead->data=a[0];ListHead->next=NULL;for(int i=N-1;i>=1;i--){LinkedNode* p=new LinkedNode;p->data=a[i];p->next=ListHead->next;ListHead->next=p;}return ListHead;}void PrintList(LinkList ListHead){if(NULL==ListHead)cout<<"The List is empty!"<<endl;else{LinkedNode* p=ListHead;while(p!=NULL){cout<<p->data<<" ";p=p->next;}cout<<endl;}}void ReverseList1(LinkList &ListHead){if( NULL==ListHead || NULL==ListHead->next ){return ; }LinkedNode* pPre=ListHead; LinkedNode* pCur=pPre->next;LinkedNode* pNext=NULL; while(pCur!=NULL){pNext=pCur->next;pCur->next=pPre;pPre=pCur;pCur=pNext;}ListHead->next=NULL;ListHead=pPre; }LinkList Merge(LinkList head1, LinkList head2){ if (head1 == NULL) { return head2; } if (head2==NULL) { return head1; } LinkList head = NULL; if (head1->data < head2->data) { head = head1; head->next = Merge(head1->next, head2); } else { head = head2; head->next = Merge(head1, head2->next); } return head;}int main(){int a[N]={18,2,30,4,5,6}; LinkedNode* list=CreateList(a);PrintList(list);ReverseList1(list);PrintList(list);return 0;}
0 0
- 单链表(创建,打印,逆序,合并两个有序的链表)
- 顺序表的创建,插入,删除,查找,逆序以及合并两个有序的顺序表
- 有序的合并两个有序链表
- 链表逆序、有序合并
- (杂)百度实习的一道题链表逆序,合并两个有序链表
- 9、单链表的合并,两个有序单链表,合并为一个有序链表。
- 合并两个有序单链表,使得合并后的链表仍然有序
- 两个有序链表的合并问题
- 合并两个有序链表的算法
- 实现两个有序链表的合并
- 合并两个有序的链表
- 算法:两个有序链表的合并
- 合并两个有序的链表
- 合并两个有序的链表
- 两个有序链表的合并
- 合并两个有序的链表
- 两个有序单向链表的合并
- 实现两个有序链表的合并
- html页面发送请求处理json
- 进程间通信--有名管道
- C#+ArcEngine加载shape、栅格、access、mxd文件
- Struts2标签中$,#,%的用法
- Hyper-V 高可用性 (存储配置篇)
- 单链表(创建,打印,逆序,合并两个有序的链表)
- delphi DISQLite3使用例子
- Acdream 1203 KIDx's Triangle(解三角形)
- 1005. 继续(3n+1)猜想 (25)
- 【Unity】技巧集合2
- ParamQuery 的Demo
- php和c通过socket进行通信
- 系统调用和库函数的关系
- UNIX/LINUX使用expect实现人机自动交互功能