您的位置:88bifa必发唯一官网 > 八八必发娱乐 > 抽象数据类型

抽象数据类型

发布时间:2019-08-27 08:43编辑:八八必发娱乐浏览(148)

    参数传递:

    参数传递采用按值传递

    ADT&黑盒

    ADT:abstract data type,抽象数据类型

    c可以用于设计与实现抽象数据类型,因为它可以限制函数和数据定义的作用域,这种技巧也称为黑盒设计

    user.h

    #define MAXLEN 3
    struct UserClz {
     char *name;
     char *phone;
     char *address;
    };
    typedef struct UserClz User;
    /*
    *接函数
    *通地名称查找地址
    */
    char const * lookupAddress(char const *name);
    /*
    *接函数
    *通地名称查找电话
    */
    char const * lookupPhone(char const *name);
    


    user.c

    #include "user.h"
    #include 
    
    #include 
    /*
    *限制访问范围
    */
    static User users[MAXLEN]={
      {"user1","111","aaa"},
      {"user2","222","bbb"},
      {"user3","333","ccc"}
     };
    void init(){
     int j=0;
     for(j=0;jname,name)==0){
       return pu i;
      }
     }
     return NULL;
    } 
    
    char const * lookupPhone(char const *name){
     User const *pu;
     pu=getUserByName(name);
     if(pu!=NULL){
      return pu->phone;
     }else {
      return NULL;
     }
    }
    
    char const * lookupAddress(char const *name){
     User const *pu;
     pu=getUserByName(name);
     if(pu!=NULL){
      return pu->address;
     }else {
      return NULL;  
     }
    }
    


    main.c

    #include 
    #include "user.c"
    void main(){
     init();
     printf("phone=%sn",lookupPhone("user1"));
     printf("address=%sn",lookupAddress("user2")); 
     
    }
    

    以上就是黑盒的例子,墨盒的功能通过规定的接口访问模块,接口函数lookupPhone与lookupAddress,

    用户不能直接访问和模块实现相关的数据,如:users,getUserByName,它们被声明为static

    递归

    求菲波那契数

    #include 
    int fn(int n){
     if(n<=2) return 1;
     return fn(n-1) fn(n-2);
    }
    void main(){
     printf("result:%dn",fn(5));// result:5
    }
    


    过程图

    图片 1

    : 参数传递采用按传递 ADT黑盒 ADT:abstract data type,抽象数据类型 c可以用于设计与实现抽象数据类型,因为它可以限制函数和数据定...

    本文由88bifa必发唯一官网发布于八八必发娱乐,转载请注明出处:抽象数据类型

    关键词: 八八必发娱乐

上一篇:即可得到所需二进制数据

下一篇:没有了