实验1 顺序表的建立和运算

来源:互联网 发布:手机淘宝不能付款 编辑:程序博客网 时间:2024/06/01 07:34
顺序表的建立与运算
包括最大值,删除,插入,排序。


#include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR -1#define LIST_INIT_SIZE    100#define LISTINCREMENT     10typedef int Status;typedef int ElemType;//创建一个空的顺序表typedef struct {ElemType *elem;int length;int listsize;}Sqlist;//初始化顺序表Status InitList(Sqlist&L){ L.elem=((ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType))); if(!L.elem)  return ERROR; L.length=0; L.listsize= LIST_INIT_SIZE; return OK;}//取顺序表中的值Status GetList(Sqlist&L){    int i;    printf("\n请输入线性表元素:");    for (i = 0; i <L.length; i++)    scanf("%d",&L.elem[i]);    printf("\n您输入的元素为:");    for(i=0;i<L.length;i++)    {        printf("%d ",L.elem[i]);    }    printf("\n");    return OK;}//查找最大元素Status GetMax(Sqlist&L){    int i;    int max=L.elem[0];    printf("\n元素的最大值为:");    for(i=1;i<L.length;i++){        if(max<L.elem[i]){            max=L.elem[i];        }    }    printf("%d\n",max);    return OK;}//在线性表的第m个元素前插入一个正整数xStatus Insert(Sqlist&L,int m,int x){   int n;   for(n=L.length-1;n>=m-1;n--)   {    L.elem[n+1]=L.elem[n];   }   L.elem[m-1]=x;   L.length++;   return OK;}//删除线性表中的第j个元素Status DeleteElem(Sqlist&L,int j){   int n;   for(n=j-1;n<L.length;n++)   {    L.elem[n]=L.elem[n+1];   }   L.length--;   return OK;}//排序Status Sort(Sqlist&L){    int i;    int j;    for(i=0;i<L.length-1;i++){        for(j=i+1;j<L.length;j++){            if(L.elem[i]<L.elem[j]){                int t;                t=L.elem[i];                L.elem[i]=L.elem[j];                L.elem[j]=t;            }        }    }    return OK;}//主函数int main(){    int i,n,x,m,a;    Sqlist L;    //创建一个线性表    InitList(L);    printf("请输入要添加的元素个数:");    scanf("%d",&L.length);    GetList(L);//得出最大值    GetMax(L);    //插入元素    printf("\n在第m个前面插入元素:");    scanf("%d",&m);    printf("\n插入的元素x为:");    scanf("%d",&x);Insert(L,m,x);    printf("\n插入后的元素为:");    for(i=0;i<L.length;i++)    {        printf("%d ",L.elem[i]);    }    printf("\n"); //删除元素    printf("\n删除的元素是第n个:");    scanf("%d",&n);DeleteElem(L,n);    printf("\n删除后的元素是:");    for(i=0;i<L.length;i++)    {        printf("%d ",L.elem[i]);    }    printf("\n");//元素排序Sort(L);      printf("\n排序后的元素为:");    for(i=0;i<L.length;i++)    {        printf("%d ",L.elem[i]);}system("pause");}







原创粉丝点击