链表的删除 合并 排序 反转
来源:互联网 发布:淘宝保无忧退货 编辑:程序博客网 时间:2024/06/09 23:57
#include "stdafx.h"#include<iostream>#include<string>using namespace std;typedef struct Node{int data;Node *next;}LNode,*Linkedlist;Linkedlist LinkedlistInit(){Linkedlist L;L=(LNode*)malloc(sizeof(LNode));if(L==NULL){cout<<"没有足够的空间"<<endl;}L->next=NULL;return L;}Linkedlist Create(){Linkedlist L,p;int x,i,j;L=(LNode*)malloc(sizeof(LNode));L->next=NULL;cin>>i; for(j=0;j<i;j++){cin>>x; p=(LNode*)malloc(sizeof(LNode));p->data=x;p->next=L->next;L->next=p;}return L;}Linkedlist TailCreate(){Linkedlist L,r,p;int x,i,j;L=(LNode*)malloc(sizeof(LNode));L->next=NULL;r=L;cin>>i; for(j=0;j<i;j++){cin>>x;p=(LNode*)malloc(sizeof(LNode));p->data=x;r->next=p;r=p;}r->next=NULL;return L;}Linkedlist rerverse(Linkedlist L){Linkedlist p,q;p=L->next;L->next=NULL;while(p){q=p->next;p->next=L->next;L->next=p;p=q;}return L;}Linkedlist delsame(Linkedlist L){Linkedlist p,q,temp;p=L->next;q=p->next;while(q!=NULL){if(p->data==q->data){temp=q;q=q->next;free(temp);}else{p->next=q;p=q;q=q->next;}//p->next=q;}return L;}Linkedlist merge(Linkedlist L1,Linkedlist L2){Linkedlist L,p,q,r;L=(LNode*)malloc(sizeof(LNode));L->next=NULL;r=L;p=L1->next;q=L2->next;while(p && q){if(p->data<=q->data){r->next=p;r=p;p=p->next;}else if(p->data>q->data){r->next=q;r=q;q=q->next;}}if(p){r->next=p;}else r->next=q;return L;}void listsort(Linkedlist L)//sort delete 前驱 {Linkedlist p,q,temp;while(L->next){p=L;q=p->next;//r=q->next;while(q->next){if(q->next->data<p->next->data){p=q;q=q->next;}else{q=q->next;}}cout<<p->next->data<<" ";temp=p->next;p->next=temp->next;free(temp);}free(L);}void output(Linkedlist L){LNode* p;p=L->next;while(p){cout<<p->data<<" ";p=p->next;}}int main(){Linkedlist L1,L2,LR;L1=LinkedlistInit();//L2=LinkedlistInit(); L1=TailCreate();//L2=TailCreate();//LR=rerverse(L);//LR=delsame(L);//LR=merge(L1,L2);listsort(L1);//output(LR);system("pause");return 0;}
0 0
- 链表的删除 合并 排序 反转
- 链表插入,删除,排序,反转
- 链表----增加删除节点、链表反转、链表合并
- 链表的合并与反转
- 剑指Offer:反转链表、合并两个排序的链表
- 反转链表后输出、合并两个排序链表、树的子结构 -- 漫漫算法路 刷题篇
- 链表的逆置、合并、排序以及插入删除
- 《单向链表》----------------------合并,反转
- 链表的重复删除/反转
- C++链表的创建、插入、删除、查找、合并、排序、修改等操作的实现
- 《剑指offer》学习之--反转链表与合并两个排序链表
- 【链表】C++链表创建、删除、排序,合并
- 双链表的创建、排序、删除、查找、合并
- 关于链表结构的基本操作 c 实现 (创建,插入删除,反转,合并链表,查找,是否有环,链表相交情况)
- 链表相关面试题目 反转 合并
- 链表的删除,插入,合并
- 有序链表的合并和删除
- 剑指Offer面试题16反转链表(递归和非递归),面试题17合并两个排序的链表(递归)
- MIT算法导论学习笔记-Lecture2
- ubuntu12.04上编译gcc4.8
- 第三方平台API调用
- XML简明教程——文档对象模型——DOM和SAX(一)
- 求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
- 链表的删除 合并 排序 反转
- struts2上传与下载
- acm-uva488(水题)
- java术语(PO/POJO/VO/BO/DAO/DTO)
- 关于websocket
- 【出差】家乡的味道--哈尔滨
- 旋转数组的最小数字
- 图片尺寸相似度匹配
- 常量池