Prev: Can Kalman Filtering be used in non-time applications? Updating Non-linearModels
Next: Wikipedia Accepts Meami.org's Gibraltar code product
From: sci.math on 6 Jul 2010 15:32 <code> // Copyright © 2010 www.meami.org</br> //</br> // The information on this page may not be reproduced or republished on another web page or web site unless done so by M. M. Musatov (with the exception of Wikipedia).</br> // M. M. Musatov, Meami.org, release this code for private non- profit non-commercial use only - All Other Rights Reserved.</br> //</br> // #include <cassert></br> // #include <climits></br> // #include <cstdlib></br> // #include <cstdio></br> //</br> // using namespace std;</br> //</br> // typedef struct node</br> // {</br> // int nElem;</br> // struct node *pNextNode;</br> // }Node;</br> //</br> //</br> // int pushElem(Node **argpRoot, int argnElem)</br> // {</br> // Node *pNewNode;</br> // pNewNode = (Node *)malloc(sizeof(Node));</br> // if(!pNewNode)</br> // {</br> // fprintf(stderr,"\n\t ERR: Memory allocation failure for Node \n");</br> // return -1;</br> // }</br> //</br> // pNewNode->nElem = argnElem;</br> // pNewNode->pNextNode = NULL;</br> // if(*argpRoot==NULL)</br> // {</br> // *argpRoot = pNewNode;</br> // }</br> // else</br> // {</br> // pNewNode->pNextNode = *argpRoot;</br> // *argpRoot = pNewNode;</br> // }</br> // return 1;</br> // }</br> //</br> //</br> // int popElem(Node **argpRoot)</br> // {</br> // assert(*argpRoot!=NULL);</br> // int nRetElem;</br> // Node *pDeleteNode;</br> // pDeleteNode = *argpRoot;</br> // *argpRoot = (*argpRoot)->pNextNode;</br> // nRetElem = pDeleteNode->nElem;</br> // free(pDeleteNode);</br> // return nRetElem;</br> // }</br> //</br> // void deleteList(Node **argpRoot)</br> // {</br> // while(*argpRoot)</br> // {</br> // popElem(argpRoot);</br> // }</br> // }</br> //</br> // void printElems(Node *argpRoot)</br> // {</br> // //assert(argpRoot != NULL);</br> // if(argpRoot!=NULL)</br> // {</br> // Node *pTempNode = argpRoot;</br> // while(pTempNode->pNextNode)</br> // {</br> // fprintf(stdout,"%d->",pTempNode->nElem);</br> // pTempNode = pTempNode->pNextNode;</br> // }</br> // fprintf(stdout,"%d",pTempNode->nElem);</br> // }</br> // }</br> //</br> // int findElemFromListEnd(Node *argpRoot,int nTargetPos,int *argpnElem)</br> // {</br> // /*</br> // assert(argpRoot!=NULL);</br> // assert(nTargetPos <= INT_MAX && nTargetPos > 0);</br> // assert(argpnElem!=NULL);</br> // */</br> //</br> // if(argpRoot == NULL)</br> // {</br> // fprintf(stderr, "\n\t ERR: list is empty\n");</br> // return -1;</br> // }</br> //</br> // if((nTargetPos > INT_MAX) || (nTargetPos <= 0))</br> // {</br> // fprintf(stderr, "\n\t ERR: target position should be <=INT_MAX and non-zero positive value\n");</br> // return -1;</br> // }</br> //</br> // if(argpnElem == NULL)</br> // {</br> // fprintf(stderr, "\n\t ERR: no memory allocated to store the element at target position in the input list\n");</br> // return -1;</br> // }</br> //</br> // Node *pFwdNode,*pLagNode;</br> // int nCurrentPos = 1;</br> //</br> // pFwdNode = argpRoot;</br> // pLagNode = NULL;</br> //</br> // while(pFwdNode)</br> // {</br> // if(nCurrentPos == nTargetPos)</br> // {</br> // pLagNode = argpRoot;</br> // break;</br> // }</br> // pFwdNode = pFwdNode->pNextNode;</br> // nCurrentPos++;</br> // }</br> //</br> // if(!pLagNode)</br> // {</br> // fprintf(stderr, "\n\t ERR: target position specified is non-existent for the current list\n");</br> // *argpnElem = -1;</br> // return -1;</br> // }</br> //</br> // while(pFwdNode->pNextNode)</br> // {</br> // pLagNode = pLagNode->pNextNode;</br> // pFwdNode = pFwdNode->pNextNode;</br> // }</br> // *argpnElem = pLagNode->nElem;</br> // return 1;</br> // }</br> // int main()</br> // {</br> // Node *pRoot = NULL;</br> // int nNumElems = 0;</br> // int nCurElem;</br> // unsigned int unTestCaseId;</br> // int nTargetPos;</br> // int i;</br> //</br> // while(!feof(stdin))</br> // {</br> // fscanf(stdin,"---\n");</br> // fprintf(stdout,"---\n");</br> // fscanf(stdin,"NumOfElems :%d\n",&nNumElems);</br> // fprintf(stdout,"NumOfElems :%d\n",nNumElems);</br> // fflush(stdout);</br> // for(i=0;i<nNumElems;i++)</br> // {</br> // fscanf(stdin,"%d,",&nCurElem);</br> // pushElem(&pRoot,nCurElem);</br> // }</br> // printElems(pRoot);</br> // fflush(stdout);</br> // fscanf(stdin,"\nTarget Position :%d\n",&nTargetPos);</ br> // fprintf(stdout,"\nTarget Position :%d\n",nTargetPos);</ br> // fflush(stdout);</br> // if(findElemFromListEnd(pRoot,nTargetPos,&nCurElem)<0)</ br> // {</br> // fprintf(stdout,"ERROR\n");</br> //</br> // }</br> // else</br> // {</br> // fprintf(stdout,"Element:%d\n",nCurElem);</br> // }</br> // fscanf(stdin,"---\n");</br> // fprintf(stdout,"---\n");</br> // fflush(stdout);</br> //</br> // deleteList(&pRoot);</br> // }</br> // return 0;</br> // }</br></code> |