zoukankan      html  css  js  c++  java
  • 线性表的顺序存储结构--用数组实现

    线性表的顺序存储结构,指的是用一段连续的存储单元依次存储线性表的数据元素。 
    因为是连续的存储单元,so,,可以使用一维数组来实现它的顺序存储结构。

     1 #include <stdio.h>
     2 #define MAXSIZE 20 // 定义了线性表的最大长度20 线性表的长度<=数组的长度
     3 
     4 typedef struct ArrayList
     5 {
     6     int pBase[MAXSIZE];
     7     int length;
     8 } Arr,*pArr;
     9 
    10 void initArray(pArr p);
    11 bool addElement(pArr p,int val);//向线性表添加元素
    12 bool insertElement(pArr p,int i,int vall);//指定位置插入元素
    13 void showElement(pArr pl);//显示线性表中的全部元素
    14 bool deleteElement(pArr p,int i ,int *val);//删除指定位置的元素
    15 
    16 int mian()
    17 {
    18     Arr arr;
    19     int i;
    20     initArray(&arr);
    21     addElement(&arr,66);
    22     addElement(&arr,166);
    23     addElement(&arr,366);
    24     addElement(&arr,666);
    25     showElement(&arr);
    26     insertElement(&arr,2,-90);
    27     showElement(&arr);
    28      deleteElement(&arr ,2,&i);
    29     showElement(&arr);
    30     printf("删除的元素是 %d
    ",i);
    31     return 0;
    32 }
    33 
    34 /*初始化线性表*/
    35 void initArray (pArr p)
    36 {
    37     p->length=0;
    38 }
    39 /*线性表末尾添加元素*/
    40 bool addElement (pArr p,int val)
    41 {
    42     if(p->length==MAXSIZE)
    43     {
    44         return false;
    45     }
    46     p->length++;
    47     p->pBase[p->length-1] = val;
    48     return true;
    49 }
    50 /*线性表指定位置插入元素*/
    51 bool insertElement (pArr p,int i,int val)
    52 {
    53     if(p->length==MAXSIZE)
    54     {
    55         return false;
    56     }
    57     if(i<=p->length)
    58     {
    59         for(int k=p->length-1;k>=i-1;k--)
    60         {
    61             p->pBase[k+1] = p->pBase[k];
    62         }
    63     }
    64     p->pBase[i-1] = val;
    65     p->length++;
    66     return true;
    67 
    68 }
    69 /* 删除线性表中的指定元素*/
    70 bool deleteElement(pArr p,int i,int * val)
    71 {
    72     if(p->length==0)
    73     {
    74         return false;
    75     }
    76     *val=p->pBase[i-1];
    77 
    78     if(i<=p->length)
    79     {
    80         for(int k=i;k<p->length;k++)
    81         {
    82             p->pBase[k-1] = p->pBase[k];
    83         }
    84     }
    85     p->length--;
    86     return true;
    87 }
    88 /*线性表展示元素*/
    89 void showElement(pArr p)
    90 {
    91     int i;
    92     for(i=0;i<p->length;i++)
    93     {
    94         printf("%d",p->pBase[i]);
    95     }
    96     printf("
    ");
    97     return;
    98 }
  • 相关阅读:
    【BFS】【HDOJ-1195】Open the Lock
    hadoop经典案例
    eclipse中下载maven插件解决办法
    eclipse中导入maven项目:org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.Maven
    mysql Alter 的问题
    代理模式:利用JDK原生动态实现AOP
    JAVA中关于set()和get()方法的理解及使用
    java 中 Cannot make a static reference to the non-static 解决方法
    maven clean 异常问题
    自定义scoll样式
  • 原文地址:https://www.cnblogs.com/CheeseIce/p/10554113.html
Copyright © 2011-2022 走看看