链表

来源:互联网 发布:kmp算法 july 编辑:程序博客网 时间:2024/06/05 01:19
typedef struct node Node,*NodePtr;
typedef struct list List,*ListPtr;


struct node
{
    //循环双链表的结点结构
    void* data;//数据域指针
    struct node *next;//指向当前结点的下一结点
};


 struct list
{
NodePtr node;//头指针,指向头结点                     ///////////////////////////指向 数据域或下一个节点
    ushort datasize;//链表对应的数据单元所占内存的大小      ///////////////////////////指 一个此类型的的数据单元占的内存大小  举例如meter_param
    ushort length;//链表list的长度                           /////////////////////////node的数据域有多少个这样的meter_param结构体
byte otype;//数据类型                                            ////////////////////////meter_param  数据类型是结构体

};

SetNodeDataSize(&meter_list,structure,sizeof(METER_PARAM));

 void  SetNodeDataSize(ListPtr ptr,byte otype,int datasize)
 {
if(ptr ==NULL) return ;
ptr->datasize =datasize;
ptr->otype =otype;
 }

//档案参数
typedef struct meter_param
{
Long_unsigned  pn;//配置序号
BASCI_PARAM   basic;
EXTEND_PARAM  extend;
List annex_param;
METER_EXPONENT_DATA   data;
METER_AUX_DATA  aux_data;
}METER_PARAM,*METER_PARAM_PTR;