C++ 线性表(Array)实现

2021/11/21 17:11:49

本文主要是介绍C++ 线性表(Array)实现,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

#include<stdio.h>
#include<stdlib.h>
#define Maxsize 20
typedef int ElemType;
int i;
typedef struct 
{
    ElemType A[Maxsize];
    int size;
}seqList,*psewqList;
psewqList CREATELIST()//创建线性表
    {
    psewqList l;
    l=(psewqList)malloc(sizeof(seqList));
    if(l==NULL)
    {
        printf("Failure!\n");
        return NULL;
    }
    else 
    {
     printf("Success!\n");   
     l->size=0;
     return l;
    }
}
void ADDLIST(psewqList l, int index,ElemType val)//添加元素
{
    if(index<0||index>l->size||index==Maxsize){
        printf("out of index\n");
        return;
    }
    else
    {
        for(i=l->size;i>index;i--){
            l->A[i]=l->A[i-1];
        }
        l->A[index]=val;
        l->size++;

    }
}
void DELELIST(psewqList l, int index)//删除元素
{
    if(index<0||index>=l->size||index==Maxsize)
    {
        printf("out of index");
        return;
    }
    else
    {
        for(i=index;i<l->size-1;i++)
        {
            l->A[i]=l->A[i+1];
        }
        l->size--;

    }
}
int LOCATE(psewqList l,ElemType val)//返回元数位置
{
    for(i=0;i<l->size;i++){
        if(l->A[i]==val){
            return i;
        }
    return -1;
    }
    
}
void PURGE(psewqList l)//删除重复元素
{
    int i=0,j;
    while(i<l->size)
    {
        j=i+1;
        while(j<l->size){
            if(l->A[i]==l->A[j]){
                 DELELIST(l,j);
            }else{
                j++;
            }
        }
        i++;

    }
}
void SORT(psewqList l)//排序
{
    int i=0,j,temp;
    while(i<l->size-1){
        j=i+1;
        while(j<l->size){
            if(l->A[i]>l->A[j]){
                temp=l->A[i];
                l->A[i]=l->A[j];
                l->A[j]=temp;
            }
            j++;
        }
        i++;
    }
}



这篇关于C++ 线性表(Array)实现的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程