数据结构复习——线性表的顺序存储实现

来源:互联网 发布:大数据技术专业支撑 编辑:程序博客网 时间:2024/05/22 03:22

线性表有两种方法实现,一种是顺序存储实现,另一种是链表存储实现。

顺序存储说白了就是用数组去存储。

简单的实现了增,删,查。

#include<bits/stdc++.h>using namespace std;#define MAXSIZE 105typedef struct{    int data[MAXSIZE];    int Len;} List;void printList(List *ptr){    printf("表中:");    if(ptr->Len==0)    {        printf("空!\n");        return ;    }    for(int i=1; i<=ptr->Len; i++)        cout<<ptr->data[i]<<" ";    cout<<endl;    return ;}void MakeEmpty(List *ptr) //清空{    for(int i=0; i<MAXSIZE; i++)        ptr->data[i]=0;    ptr->Len=0;}void ListInsert(List *ptr,int element,int pos) //增{    if(ptr->Len==MAXSIZE)    {        printf("表满!\n");        return ;    }    if(pos<1||pos>ptr->Len+1)    {        printf("不在范围内!\n");        return ;    }    if(pos<=ptr->Len+1)    {        for(int i=ptr->Len; i>=pos; i--)            ptr->data[i+1]=ptr->data[i];    }    ptr->data[pos]=element;    ptr->Len++;    return ;}int FindListElement(List *ptr,int element)//查{    for(int i=1; i<=ptr->Len; i++)        if(ptr->data[i]==element)        {            printf("元素%d在第%d个位置上\n",element,i);            return i;        }    printf("不在表中!\n");    return -1;}void DeleteElement(List *ptr,int pos)//删{    if(pos<1||pos>ptr->Len){        printf("不再范围内!\n");        return ;    }    for(int i=pos;i<ptr->Len;i++)        ptr->data[i]=ptr->data[i+1];    ptr->Len--;    return ;}int main(){    List x;    MakeEmpty(&x);    for(int i=1; i<=10; i++)        ListInsert(&x,i,i);    printList(&x);    int pos=FindListElement(&x,2);    DeleteElement(&x,pos);    printList(&x);    for(int i=1;i<5;i++)        ListInsert(&x,0,i);    printList(&x);    return 0;}


0 0
原创粉丝点击