• 顺序表


    顺序表(传递地址)

    建表、输入、输出

    typedef int Typedef;
    const int MAXSIZE = 800;
    
    typedef struct
    {
        Typedef data[MAXSIZE];
        Typedef last;
    }SeqList;
    
    SeqList *init_SeqList()
    {
        SeqList *L;
        L = (SeqList*)malloc(sizeof(SeqList)); // L= new SeqList;
        L->last = -1;
        return L;
    }
    
    void input(SeqList *L)
    {
        L->last++;
        while( cin >> L->data[L->last] )//读到文件结束符EOF 
            L->last++;
        L->last--; 
    }
    
    void print(SeqList *L)
    {
        for( int i = 0; i <= L->last; i++)
            cout << L->data[i] << ' ';
        cout << endl << L->last + 1; 
    } 

    顺序表(传递引用)

    建表、输出

    void init_SeqList(SeqList &L)
    { 
        L.last = -1;       
    }
    //顺序表输出 
    void print(const SeqList &L)//const 避免 L 在该函数中被无意修改
    {
        for(int i = 0; i < L.last; i++)
            cout << L.data[i] << " ";
        cout << endl << L.last + 1;
    }
    

     插入

    Typedef Insert_SeqList(SeqList &L,int i,Typedef x)
    {
        if(L.last==MAXSIZE-1)
        {
            printf("Full");return (-1);
        }
        if(i<1 || i>L.last+2)
        {
            printf("wrong");return (0);
        }
        for(int j=L.last; j>=i-1; j--)
            L.data[j+1]=L.data[j];
        L.data[i-1]=x;
        L->last++;
        return 1;
    }

    删除

    Typedef Delete_SeqList(SeqList &L,int i)
    {
        if(i<0 || i>L.last)
        {
            printf("wrong");return 0;
        }
        for(int j=i; j<L.last; j++)
            L.data[j]=L.data[j+1];
        L->last--;
        return 1;
    }

    交换前后两部分:先整体反向,再在每部分反向。

    删除顺序表中多余的元素

    void purge_SeqList(SeqList &L)
    {
        k=-1;
        for(int i=0;i<=L.last;i++)
        {
            j=0;
            while(j<=k && L.data[i]!=L.data[j])
                ++j;
            if(k==-1 || j>k)
                L.data[++k]=L.data[i];
        }
        L.last=k;
    }
  • 相关阅读:
    递归算法详解
    树、森林和二叉树的转换
    C++ 类的静态成员详细讲解
    C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区
    C++中的static关键字的总结
    C/C++中static关键字详解
    配置文件
    Spring Boot 注释
    使用 Spring Boot 快速构建 Spring 框架应用
    Myeclipse快捷键(二)
  • 原文地址:https://www.cnblogs.com/Cindy-Chan/p/11178265.html
Copyright © 2020-2023  润新知