zoukankan      html  css  js  c++  java
  • 循序表操作样例

    #include <stdio.h>
    #include <stdlib.h>
    #include <malloc.h>
    #define LISTINCREASMENT 100                 /*每次分配元素的个数*/
    #define  LISTSIZE 10                           /*顺序存储的最大个数*/
    #define  OVERFLOW -1
    #define  OK 1  
    typedef int ElemType;


    typedef struct                                   /*顺序表元素的的定义*/
    {
        ElemType * elem;
        int length;
        int listsize;
    } Sqlist;


    int SqInitial(Sqlist &L)                           /*初始化线性表*/
    {
        L.elem=(ElemType *) malloc (LISTSIZE*sizeof(ElemType));
        if (! L.elem)  exit(OVERFLOW); //存储分配失败 
        L.length=0;
        L.listsize=LISTSIZE;
        return OK;
    }


    int ListInsert(Sqlist &L,int i,ElemType e)            /*插入元素*/
    {
        if(i<1|| i > L.length+1) printf("ERROR!");
        if(L.length>=L.listsize)
        {
            ElemType*newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREASMENT)
                                                *sizeof(ElemType));
            if(!newbase)   return  OVERFLOW;// 当前存储空间已满


    L.elem=newbase;
            L.listsize+=LISTINCREASMENT;         /*表的容量不足分配内存*/
        }
        ElemType *  q=&(L.elem[i-1]);
        ElemType *  p;
        for(p=&(L.elem[L.length-1]); p>=q; --p)
            *(p+1)=*p;
        *q=e;
        ++L.length;
        return OK;


    }


    void ListDelete(Sqlist &L,int i,ElemType &e)           //删除线性表中第i个位置上的元素
    {
        if(i<1||i>L.length) printf("ERROR!");
        else
        {
            e=L.elem[i-1];
            for(;i<L.length;i++)
            {
                L.elem[i-1]=L.elem[i];
            }
            L.length--;
        }


    }
    ElemType GetElem(Sqlist &L,int i)
    {
        if(i<1||i>L.length) printf("ERROR!");
        else
        {
            return L.elem[i-1];
        }
    }


    int main()
    {
        Sqlist L;
        int t =1 ,d;
        SqInitial(L);
        printf("构建长度为7的顺序表。\n");
        for(t=1; t<=7; t++)                         /*构建长度为7的顺序表*/
        {
            printf("Please input the %dth list elem:",t);
            scanf("%d",&d);
            ListInsert(L,t,d);
        }


        printf("表长: %d\n",L.length);             /*输出表长*/




        for(t=1; t<=L.length; t++)
            printf("%d ",L.elem[t-1]);/*读表*/


        printf("\n删除的位置:");                   //删除元素
        scanf("%d",&t);
        ListDelete(L,t,d);
        printf( "删除元素的值:%d\n",d);
        printf( "删除后的表:");
        for(t=1; t<=L.length; t++)
            printf("%d ",L.elem[t-1]);                 //删除后的表


        printf("\n要插入的位置");                   //插入元素
        scanf("%d",&t);
        printf("要插入的值");
        scanf("%d",&d);
        ListInsert(L,t,d);
        printf( "插入以后的表:");
        for(t=1; t<=L.length; t++)                  //插入以后的表
            printf("%d ",L.elem[t-1]);
        printf("\n要检索的元素的位置:");            //检索元素
        scanf("%d",&t);
        d=GetElem(L,t);
        printf( "该元素的值为:%d\n",d);
    return 0;
    }
  • 相关阅读:
    TensorflowJS 教程
    理解TCP序列号(Sequence Number)和确认号(Acknowledgment Number)
    Wireshark 过滤 基本语法
    LSTM如何解决梯度消失或爆炸的?
    K-Means ++ 和 kmeans 区别
    LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数
    python 多进程练习 调用 os.system命令
    TLS 改变密码标准协议(Change Cipher Spec Protocol) 就是加密传输中每隔一段时间必须改变其加解密参数的协议
    ssl tls 证书链 根证书和叶证书查询
    TLS与SSL之间关系——SSL已经被IEFT组织废弃,你可以简单认为TLS是SSL的加强版
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/6444616.html
Copyright © 2011-2022 走看看