• 按非降序建立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;
    }

  • 相关阅读:
    菜单范式
    PIC18F26K20
    单片机中串口通信模型
    STM8S103之GPIO
    STM8S103之ADC
    二叉树最近公共祖先
    全排列
    整数翻转
    完全二叉树节点个数
    二叉树的深度
  • 原文地址:https://www.cnblogs.com/Dearmyh/p/10004600.html
Copyright © 2020-2023  润新知