zoukankan      html  css  js  c++  java
  • 顺序表的基本方法实现C语言版

    顺序表--------------线性表的第一个儿子

    这个儿子的结构体定义:

    typedef int  ElemType;//取别名
    
    typedef struct link{
        ElemType * head;//head是一个数组指针,不太清楚的同学,可以百度一下
        int  length;
        int  size;
    }sqlink;//取别名

    顺序表的初始化:

    #include<stdio.h>
    #include<stdlib.h>
    
    #define MAX_SIZE 20
    
    typedef int ElemType;
    
    typedef struct link{
        ElemType * head;
        int length;
        int size;
    }sqlink;
    
    sqlink InitLink();//方法声明
    int main(){
        sqlink s;
        s = InitLink();
        for(int i = 0; i < 10; i++){
            s.head[i] = i;
        }
        printf("%d",s.head[6]);
    }
    
    sqlink InitLink(){//方法实现
          sqlink s;
          s.head = (ElemType*)malloc(MAX_SIZE*sizeof(ElemType));//在内存中动态创建
          if(!s.head)//如果创建不成功,就退出
          exit(0);
          s.length = 0;
          s.size = MAX_SIZE;
          return  s;          
    }    

    顺序表的插入:

    #include<stdio.h>
    #include<stdlib.h>
    
    #define MAX_SIZE 20
    
    typedef int ElemType;
    
    typedef struct link{
        ElemType * head;
        int length;
        int size;
    }sqlink;
    
    sqlink InitLink();//方法声明
    sqlink InsertLink(sqlink s ,int i , ElemType e);
    int main(){
        sqlink s;
        s = InitLink();
        for(int i = 0; i < 10; i++){
            s.head[i] = i;
        }
        printf("%d
    ",s.head[6]);
        s = InsertLink(s,7,99999);
        printf("%d
    ",s.head[6]);
        printf("%d
    ",s.head[7]);
    }
    
    sqlink InitLink(){//方法实现
          sqlink s;
          s.head = (ElemType*)malloc(MAX_SIZE*sizeof(ElemType));
          if(!s.head)
          exit(0);
          s.length = 0;
          s.size = MAX_SIZE;
          return  s;          
    }    
    sqlink InsertLink(sqlink s ,int i , ElemType e){
        if(i<1 && i>MAX_SIZE+1)
            exit(0);
        if(s.length == MAX_SIZE)
            exit(0); 
        for(int j = s.length-1;j >= i-1;j--){
            s.head[j+1] = s.head[j] ;
        }
        s.head[i-1] = e;
        return s;
        
    }

    剩下的过两天再写,如果有不懂的地方,可以留言!

  • 相关阅读:
    201-STM32+Air724UG基本控制篇(阿里云物联网平台)-设备使用物模型Topic上报温湿度数据
    Sentinel Go 核心统计结构滑动窗口的深度解析
    golang sync.Mutex互斥锁的实现原理
    Golang-Scheduler原理解析
    Golang-Channel原理解析
    golang里channel的实现原理
    最长回文子序列
    GO语言的goroutine并发原理和调度机制
    golang 常见问题
    通过js给网页加上水印背景
  • 原文地址:https://www.cnblogs.com/chaogechaoge/p/13122298.html
Copyright © 2011-2022 走看看