顺序表

//顺序表结构体定义
#define maxsize 100
typedef struct
{
    int date[maxsize];//存放顺序表元素的数组 
    int length;//存放顺序表长度 
 } sqlist;//sqlist 是别名.
 
 //插入算法的思路
 
 //如果插入位置不合理,抛出异常
 //如果线性表长度大于等于数组长度,抛出异常
 //从最后一个元素开始向前遍历到第i个位置,分别都将他们都向后移动一个单位
 //将要插入的元素填入位置i处
 //表长+1
 
 /*初始条件:线性表已经存在。 0<=i<=List_length*/
 /*操作:在线性表第i个元素之前插入数据元素e,线性表l的长度+1*/
 int sqlistInsert(sqlist &l,int i,elmentype e)
 {//i从0开始,代表数组的下标,[0,length]都可以插入, 
     int k=0;
     
     if(l.length==maxsize||i>l.length||i<0)//顺序表已经满了或者i不在范围时,返回错误0,插入失败 
         return 0;// 
    
    
    for(k=l.length-1;k>=i;k--)
    {
        l.date[k+1]=l.date[k];
    }
    
    l.date[i]=e;
    (l.length)++;
    return 1;
     
  } 
  
  
  
  
  //删除算法思路
  //如果删除位置不合理,抛出异常
  //取出删除元素
  //从删除元素位置开始遍历到最后一个位置,分别都将他们向前移动一个位置
  //表长-1
  int deletelem(sqlist &l,int p, int &e)//需要改变的变量用引用型 在表l中,删除第i个位置的元素,用e保存 
  {
      int i;
      
      if(p<0||p>l.length-1)//顺序表的下标是【0,length-1】
      return 0;
    
    e = l.date[p];
    
    for(i = p,i<l.length-1;i++)
        l.date[i]=l.date[i+1];
    
    l.length--;
    return 1; 
   } 
   
   
   
   //

 

posted @ 2020-02-10 23:44  清明道人  阅读(188)  评论(0编辑  收藏  举报