数据结构---数组操作练习

来源:互联网 发布:科比总决赛数据 编辑:程序博客网 时间:2024/05/20 13:08

没有学过计算机的数据结构,感觉多少懂点比较好,从基础来,数组操作开始。

#include<stdio.h>#include<stdlib.h>#include<string.h>/*线性表顺序存储操作*/#define MAX 100#define ElemType inttypedef struct{    ElemType elem[MAX];    int length;}SeqList;//初始话一个线性表void InitList_Seq( SeqList *L){    L->length=0;}void CreatList(SeqList *L)//创建一个顺序表{    ElemType x;    printf("请输入元素:.\n");    scanf("%d",&x);    while(x!=-1)//有的时候可能不会输入完所有的数据,-1作为停止标志位    {        L->elem[L->length]=x;        L->length++;        scanf("%d",&x);    }}void ListInsert(SeqList *L,ElemType data,int pos){    int i;    if(L->length==MAX)//检查是否满了    {        printf("表满了.\n");    }    else if(pos>L->length||pos<1)    {        printf("插入位置错误.\n");    }    else    {        for(i=L->length;i>=pos;i--)//第pos个元素(包括位置pos)后面的都要后移动        {            L->elem[i]=L->elem[i-1];        }        L->elem[pos-1]=data;//在第pos位置插入        L->length++;    }}void ShowList(SeqList *L){    int i=0;    for(i=0;i<L->length;i++)    {        printf("%d   ",L->elem[i]);    }    printf("\n");}void FindList(SeqList *L,ElemType obj)//查找{    int i=0;    while(i<L->length&&L->elem[i]!=obj)    {        i++;    }    if(i<=L->length)    {        printf("%d在第%d个位置: .\n",obj,i+1);    }    else    {        printf("没找到.\n");    }}void DelList(SeqList *L,int pos)//删除{    if(pos>L->length||pos<1)    {        printf("输入数据位置错误");    }    else    {        for(;pos<L->length;pos++)        {            L->elem[pos-1]=L->elem[pos];        }        L->length--;    }}void AddList(SeqList *obj,SeqList *src)//合并{    int i;    if(obj->length+src->length>MAX)    {        printf("空间不足数据会丢失");    }    else    {        for(i=0;obj->length<MAX&&i<src->length;obj->length++,i++)        {            obj->elem[obj->length]=src->elem[i];        }    }}int main(){    SeqList L,L2;    InitList_Seq(&L);    CreatList(&L);    ShowList(&L);    InitList_Seq(&L2);    CreatList(&L2);    ShowList(&L2);    ListInsert(&L,0,5);    FindList(&L,5);    ShowList(&L);    DelList(&L,5);    AddList(&L,&L2);    ShowList(&L);}



0 0
原创粉丝点击