递增序列排列
2017-06-05 17:33
141 查看
#include <iostream> #include<malloc.h> #include<stdio.h> using namespace std; typedef struct LNode { char data; struct LNode *next; }LinkList; void InitList(LinkList *&L) { L=(LinkList*)malloc(sizeof(LinkList)); L->next=NULL; } void CreateListF(LinkList *&L ,char a[],int n) { LinkList *s; int i; L=(LinkList*)malloc(sizeof(LinkList)); L->next=NULL; for(i=0;i<n;i++) { s=(LinkList *)malloc(sizeof(LinkList)); s->data=a[i]; s->next=L->next; L->next=s; } } void DisList(LinkList *L) { LinkList *p=L->next; while(p!=NULL) { printf("%c ",p->data); p=p->next; } printf("\n"); } void DestoryList(LinkList *L) { LinkList *pre=L,*p=L->next; while(p!=NULL) { free(pre); pre=p; p=pre->next; } free(pre); } void sort1(LinkList *&L)//此递增有序排列还有双链表的一种方法,其初始化头插尾插具体参见博客这里不详细介绍 { LinkList *p,*pre,*q; p=L->next->next; L->next->next=NULL; while(p!=NULL) { q=p->next; pre=L; while(pre->next!=NULL&&pre->next->data<p->data) pre=pre->next; p->next=pre->next; //if(pre->next!=NULL) //pre->next->prior=p; pre->next=p; //p->prior=pre; p=q; } } int main() { int i,n; char a[100]; scanf("%d",&n); for(i=0; i<n; i++) scanf("%c",&a[i]); LinkList *L; InitList(L); CreateListF(L,a,n); sort1(L); DisList(L); DestoryList(L); return 0; }
相关文章推荐
- 3的方幂及不相等的3的方幂的和排列成递增序列1,3,4,9,10,12,13……,写出数列第300项
- 链表逆序(递归&非递归)/倒序输出链表值/用一个递增序列构建平衡二叉搜索树/用递归的方法判断数组是不是升(降)序排列
- NYOJ 17 单调递增最长子序列
- NYOJ 17 单调递增最长子序列(基础dp)
- hdu 1087 Super Jumping! Jumping! Jumping!(dp+最长递增序列)
- 【LCS,LIS】最长公共子序列、单调递增最长子序列
- UVALive 6609(Minimal Subarray Length)维护递增序列|RMQ
- 【九度OJ】题目1262:Sequence Construction puzzles(I)_构造全递增序列
- 假设有两个按元素值递增有序排列的线性表A和B,均以单链表作存储结构,请编写算法将A表和B表归并为一个按元素值递减 有序(即非递增有序,允许表中含有值相同的元素)排列的线性表C,并要求利用原装(即A表和
- 华为OJ_竞赛_单词博弈:最长递增子序列长度
- 单调连续递增子序列(O(n2)
- 最长递增(递减)子序列的贪心解法
- [LeetCode] Longest Increasing Subsequence 最长递增子序列的长度
- 最长单调递增子序列 o(n^2),o(nlogn)
- 经典Dp-单调递增最长子序列(经典dp)
- 单调递增最长子序列 - 从最长公共子序列到单调递增最长子序列
- 一条语句计算所有递增序列的结果
- 最大递增子序列问题
- 单调递增子序列二
- 求单调递增最长子序列 动态规划法(DP)