数据结构中抽象数据类型如何实现?

抽象数据类型可以通过固有的数据类型(如整形,实型,字符型等)来表示和实现。

即利用处理器中已存在的数据类型来说明新的结构,用已经实现的操作来组合新的操作

用类c语言(介于伪码和c语言之间)作为描述工具。

例如:抽象数据类型“复数”的实现

          typedef  sturt{

               float  realpart;      //实部

               float  imagpart;    //虚部

           }Complex          //定义复数抽象类型

具体实现

void    assign(Complex  *A  ,  float real  ,  float imag){

       A->realpart = real;    //实部赋值

      A->image = imag;     //虚部赋值

}                                //End of assign()

求和

void  add(Complex  *c , Complex  A , Complex B){    //c=A+B

       c->realpart = A.realpart + B.realpart;       //实部相加

       c->imagpart = A.imagepart + B.imagpart;     //虚部相加

  }

:Complax是定义的一个结构体

       带*:指针变量,他是指向Complex类型指针

       不带*:Complex类型的普通变量

例题:z=(8+6i)(4+3i)/((8+6i)+(4+3i))

两个复数相乘除以两个复数相加

#include <stdio.h>

     complex  z1,z2,z3,z4,z;

     float  Realpart,Imagpart;

     assign (z1 , 8.0 , 6.0);       //构造复数z1

     assign (z2 , 4.0 , 3.0);       //构造复数z2

     add (z1,z2,z3);                  //复数相加

     multiply (z1,z2,z4);            //复数相乘

     if (divide(z4,z3,z)){            //复数相除

     GetReal (z,Realpart);

     Getmag (z,imagpart);

}

void.............                    //写函数对其进行计算

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值