zoukankan      html  css  js  c++  java
  • 1.2 顺序表

    #include <stdio.h>
    #include <stdlib.h>
    
    #define MaxSize 10
    
    // 注意:顺序表不存在头节点下标0要插入。有MaxSize定义最大长度,有Length定义当前长度,有data存放数据。
    
    // 静态分配
    typedef struct{
        int data[MaxSize];   // 该顺序表是固定元素的组数。也可以构造一个其它结构体类型数组,对应于书上-ElemType
        int Length;          // 插入一个元素记一个
    }SqList;
    
    void InitList(SqList *L){
       L->Length=0; 
    }
    
    // 插入一个元素需要移动节点平均数为n/2
    int ListInsert(SqList *L,int loc,int e){
        int j;
        if(loc<1||loc>L->Length+1) return 0;     // 判空判满-预留1个空位以备往后移动
        if(L->Length>=MaxSize) return 0;         
        for(j=L->Length;j>=loc;j--)              // 定位到当前长度的最后一个,依次往后移动
            L->data[j]=L->data[j-1];
        L->data[loc-1]=e;                        // 插入元素
        L->Length++;                             // 记得更新长度
        return 1;   
    }
    
    int ListDelete(SqList *L,int loc,int *e){
        int i;
        if(loc<1||loc>L->Length)                
            return 0;
        *e=L->data[loc];
        for(i=loc;i<L->Length;i++){              // 注意是小于
            L->data[i]=L->data[i+1];
        }
        L->Length--;
        return 1;
    }
    
    void displayList(SqList *L){
        int i;
        for(i=0;i<10;i++)
            printf("%d
    ",L->data[i]);
    }
    
    int main(){
        int i,j;
        SqList L;
        InitList(&L);
        for(i=0;i<10;i++){            
            ListInsert(&L,i,i);
        }
        displayList(&L);
    
        int e=0;
        ListDelete(&L,4,&e);          // 4号位置存放数字5
        printf("已成功删除元素%d
    ",e);
    }
  • 相关阅读:
    js 回车调用后台事件
    获取下拉框选中的值:
    MVC 3.0 在各个版本IIS中的部署
    创建Windows域
    SQL Server 事务、异常和游标
    IIS配置PHP环境(快速最新版)
    js操作select下拉框
    如何清除访问远程网络时保存的密码
    免费Web服务
    Firefox不支持event解决方法
  • 原文地址:https://www.cnblogs.com/Alexagender/p/10806199.html
Copyright © 2011-2022 走看看