zoukankan      html  css  js  c++  java
  • 002、静态顺序表的插入与删除

      1 #include <stdio.h>
      2 #include <stdlib.h>
      3 #include "string.h"
      4 
      5 #define MAXSIZE    100        //定义顺序表最多存储多少元素
      6 //定义一个静态顺序表结构体
      7 typedef struct
      8 {
      9     int staelem[MAXSIZE];
     10     int length;
     11 }strlist;
     12 //初始化
     13 void staListInit(strlist* L)
     14 {
     15     int i;
     16     memset(L->staelem,0,MAXSIZE);
     17     L->length = 0;
     18     for( i = 0;i < 10;i++)
     19     {
     20         L->staelem[i] = i;
     21     }
     22     L->length = i;
     23 }
     24 //循环打印
     25 void printLis(strlist* L)
     26 {
     27     int i;
     28     for(i = 0;i < L->length ;i++)
     29     {
     30         printf("L->staelem[%d] = %d
    ",i,L->staelem[i]);
     31     }
     32     printf("L->length = %d
    ",L->length);
     33 }
     34 
     35 /* 
     36  *    插入数据
     37  *    L    静态顺序表结构体
     38  *    n    插入位置的下标
     39  *    data    插入的数据
     40  */
     41 int inserList(strlist* L,int n,int data)
     42 {
     43     int i;
     44     if(L->length >= MAXSIZE || n > L->length ||n < 0 )
     45     {
     46         printf("Array insertion error!
    ");
     47         return 0;
     48     }
     49     for(i = L->length-1;i >= n;i--)
     50     {
     51         L->staelem[i+1] = L->staelem[i];
     52     }
     53     L->staelem[n] = data;
     54     L->length += 1;
     55     return 1;
     56 }
     57 /* 
     58  *    删除数据
     59  *    L    静态顺序表结构体
     60  *    n    删除位置的下标
     61  */
     62 int deleteList(strlist* L,int n)
     63 {
     64     int i;
     65     if(n < 0 || n > L->length)
     66     {
     67         printf("Array delete error!
    ");
     68         return 0;
     69     }
     70     for(i = n;i < L->length-1;i++)
     71     {
     72         L->staelem[i] = L->staelem[i+1];
     73     }
     74     L->length -= 1;
     75     return 1;
     76 
     77 }
     78 int main()
     79 {
     80     int err;
     81     strlist List1;
     82     /* 初始化 */
     83     staListInit(&List1);
     84     /* 打印数据 */
     85     printLis(&List1);
     86 
     87     /* 插入数据 */
     88     err = inserList(&List1,5,20);
     89     /* 打印数据 */
     90     if(err)
     91         printLis(&List1);
     92 
     93     /* 删除 */
     94     err = deleteList(&List1,5);
     95     /* 打印数据 */
     96     if(err)
     97         printLis(&List1);
     98 
     99     return 0;
    100 }
  • 相关阅读:
    OC编程之道-创建对象之工厂方法
    OC编程之道-创建对象之单例模式
    OC编程之道-创建对象之原型模式
    OC编程之道-创建对象之生成器模式
    effective OC2.0 52阅读笔记(七 系统框架)
    effective OC2.0 52阅读笔记(六 块)+ Objective-C高级编程 (二 Blocks)
    effective OC2.0 52阅读笔记(五 内存管理)
    effective OC2.0 52阅读笔记(四 协议与分类)
    安装Sublime Text 3插件的方法
    cocos2d-x学习笔记
  • 原文地址:https://www.cnblogs.com/yang-cheng/p/12902386.html
Copyright © 2011-2022 走看看