zoukankan      html  css  js  c++  java
  • 按非降序建立n个元素的线性表

    Status CreatAscend(LinkList &L,int n)

    int j;
    LinkList p,q,s;
    if(n<=0)
    return ERROR;
    InitList(L);
    printf("请输入%d个元素: ",n);
    s=(LinkList)malloc(sizeof(LNode)); // 第一个结点
    scanf("%d",&s->data);
    s->next=NULL;
    L->next=s;
    for(j=1;j<n;j++)
    {
    s=(LinkList)malloc(sizeof(LNode)); // 其余结点
    scanf("%d",&s->data);
    q=L;p=L->next;

    while(p&&p->data<s->data) // p没到表尾,且所指元素值小于新值
    {
    q=p;
    p=p->next; // 指针后移
    }
    s->next=q->next; // 元素插在q的后面
    q->next=s;
    }
    return OK;
    }

    建立n个元素的线性表,然后对表中元素按非降序排序

    //将链表按升序排序
    void SortList(LinkList &L)
    {
    LinkList p=L->next;
    int t1,t2;
    int length=ListLength(L);
    int m[100],n[100];
    int t=0;
    int i,j;
    while(p)
    {
    m[t]=p->coe;
    n[t]=p->exp;
    t++;
    p=p->next;
    }

    for(i=1;i<length;i++)
    {
    for(j=0;j<length-1;j++)
    {
    if(n[j]>n[j+1])
    {
    t1=n[j];
    n[j]=n[j+1];
    n[j+1]=t1;
    t2=m[j];
    m[j]=m[j+1];
    m[j+1]=t2;
    }
    }
    }
    LinkList q;
    p=L;
    for(i=0;i<length;i++)
    {
    q=(LinkList)malloc(sizeof(LNode));
    q->coe=m[i];
    q->exp=n[i];
    p->next=q;
    p=q;
    }
    p->next=NULL;
    }

  • 相关阅读:
    uva11552
    zoj3820 树的直径+二分
    hdu 5068 线段树加+dp
    zoj3822
    uva1424
    DAY 36 前端学习
    DAY 35 前端学习
    DAY 34 PYTHON入门
    DAY 33 PYTHON入门
    DAY 32 PYTHON入门
  • 原文地址:https://www.cnblogs.com/Dearmyh/p/10004600.html
Copyright © 2011-2022 走看看