zoukankan      html  css  js  c++  java
  • 字符数组的冒泡排序+ 动态顺序存储线性表的基本实现

    /*

    void Sort(LinkList L)
    {
        LNode *q,*p,*c;
        p=L->next;
        q=L;
        char cnt;
        while(p!=NULL)
        {
            while(p->next!=NULL)
            {
                if(p->data > p->next->data)
                {
                    cnt=p->data;
                    p->data=p->next->data;
                    p->next->data=cnt;
                }
                p=p->next;
            }
            p=q->next;
            q=p;
        }
        
        for(c=L->next;c;c=c->next)
        {
            printf("%c ",c->data);
        }
    }

    */

    /* 例题

    2_2 动态顺序存储线性表的基本实现

    任务描述:

    根据给出的存储结构,完成现在下列函数功能,并按照主函数的代码,输出规定的效果。

    预定义常量和类型:

    #define LIST_INIT_SIZE 100
    #define LISTINCREMENT 10
    #define Status int
    #define OVERFLOW -1
    #define OK 1
    #define ERROR 0
    #define ElemType int

    存储结构:

    typedef struct
    {
           ElemType * elem;
           int length;
           int listsize;
    }SqList;
    
    

    函数操作:

    打印:voidListPrint_Sq(SqListL)

    分类:void PartList(SqList *La)

    注意:

           输出打印(ListPrint_Sq)是指将表中数据元素打印出来;

           分类(PartList)是在线性表L中将正数和负数分开,正数在前,负数在后,0在中间,正数的相对位置保持不变,负数的相对位置也保持不变

    主函数如下:

    int main(void)
    {
        SqList L;
        int i=0;
        ElemType e;
        ElemType data[9] = {10,263,-32,-3,-25,88,77,0,-9};
        InitList_Sq(&L);
        for(i = 0;i < 9; i++)
           ListInsert_Sq(&L,i+1,data[i]);
    
        printf("插入完成后 L = : ");
        ListPrint_Sq(L);
        PartList(&L);
        printf("元素分类后的线性表:");
        ListPrint_Sq(L);
        system("pause");
        return 0;
    }

    */

    #include <stdio.h>
    #include <stdlib.h>
    #include<string.h>

    #define OK 1
    #define ERROR 0

    typedef int Status;
    typedef char ElemType;

    typedef struct Node
    {
        ElemType data;
        struct Node * next; 
    }LNode,*LinkList;

    Status Init(LinkList *L)
    {
        LNode *newNode=(LNode *)malloc(sizeof(LNode));
        newNode->next=NULL;
        L=newNode;
        return L; 
    void ListInsert(LinkList L)
    {
        char str[]={'s','o','f','t','w','a','r','e'};
        
        //L->next=newNode;
        LNode* tail=L;
        int i;
        for(i=0;str[i]!=NULL;i++)
        {
            LNode *Lnew=(LNode *)malloc(sizeof(LNode));
            Lnew->data=str[i];
            Lnew->next=NULL;
            tail->next=Lnew;
            tail=Lnew;
        }
    }
    void Sort(LinkList L)
    {
        LNode *q,*p,*c;
        p=L->next;
        q=L;
        char cnt;
        while(p!=NULL)
        {
            while(p->next!=NULL)
            {
                if(p->data > p->next->data)
                {
                    cnt=p->data;
                    p->data=p->next->data;
                    p->next->data=cnt;
                }
                p=p->next;
            }
            p=q->next;
            q=p;
        }
        
        for(c=L->next;c;c=c->next)
        {
            printf("%c ",c->data);
        }
    }

    int main(void)
    {
        LinkList L1;
        Init(&L1);
        ListInsert(L1);
        //OutPut(L1);
        Sort(L1);
        //system("pause");
        return 0;
    }
  • 相关阅读:
    实验2四则运算结对
    作业5 四则运算 测试与封装 5.1
    0909我对编译的看法
    P2602 [ZJOI2010]数字计数(递推+数位dp写法)
    模数的世界[数论]
    P2312[秦九韶+读入取模+哈希解方程]
    第三章 Python 的容器: 列表、元组、字典与集合
    第二章 Python 基本元素:数字、字符串、变量
    第一章 Python 之初探
    第四章 Python 外壳 :代码结构
  • 原文地址:https://www.cnblogs.com/lijianmin6/p/11767940.html
Copyright © 2011-2022 走看看