简单神经网络代码1-2

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

LOGICNERVECELL *NN::findNerveCell(U2 n) /*tmpnc 指向找到的神经元的前一个 *nc指向找到的那个*/

{

LOGICNERVECELL *tmpnc;

if(*nc->nc->nerve_cell_num == n)

{

return(*tmpnc);

}

else if(*nv->next == NULL)

{

*nc = frist_nc; /*重新指向第一个*/

return(NULL);

}

else

{

tmpnc = *nc;

*nc = *nc->next;

findNerveCell(n);

}

return(NULL);

}

NN::NN(U2 init)

{

INIT = init;

n_cell = INIT;

recycle_cell = 0;

recycle = (LOGICNERVECELL *)(malloc(sizeof(LOGICNERVECELL))*MAX_RECYCLE);

/*================================================================*/

*nc = (LOGICNERVECELL *)(malloc(sizeof(LOGICNERVECELL)));

*nc->nc = (NERVECELL*)(malloc(sizeof(NERVECELL)));

*nc->nc->nerve_cell_num = 1;

*nc->nc->input = NULL;

*nc->nc->output = NULL;

frist_nc = *nc;

for(int i=2;i<=n_cell;i++)

{

*nc->next = (LOGICNERVECELL *)(malloc(sizeof(LOGICNERVECELL)));

*nc->next->nc = (NERVECELL*)(malloc(sizeof(NERVECELL)));

if(i==(n_cell))

{

*nc->next->nc->nerve_cell_num = i;

*nc->next->nc->input = NULL;

*nc->next->nc->output = NULL;

*nc->next = NULL;

}

else

{

*nc->next->nc->nerve_cell_num = i;

*nc->next->nc->input = NULL;

*nc->next->nc->output = NULL;

*nc = *nc->next;

}

}

frist_nc = *nc; /*重新指想第一个神经元*/

}

NN::~NN()

{

//释放所有占用的内寸

}

void NN::addNerveCellByNum(U2 n) /*n为增加多少个*/

{

for(int i=1;i<=n;i++)

{

*nc->next = (LOGICNERVECELL *)(malloc(sizeof(LOGICNERVECELL)));

*nc->next->nc = (NERVECELL*)(malloc(sizeof(NERVECELL)));

if(i==n)

{

*nc->next->nc->nerve_cell_num = n_cell;

*nc->next->nc->input = NULL;

*nc->next->nc->output = NULL;

*nc->next = NULL;

}

else

{

*nc->next->nc->nerve_cell_num = i+n_cell;

*nc->next->nc->input = NULL;

*nc->next->nc->output = NULL;

*nc = *nc->next;

}

}

*nc = frist_nc; /*重新指想第一个神经元*/

n_cell = n_cell+n;

return;

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有  導航