数据结构:单链表(五)之链表中寻找一个特定值,返回该节点值指针 回调函数

来源:互联网 发布:node passport 编辑:程序博客网 时间:2024/06/05 18:19
------------------------------------------------ 新增功能:采用回调函数在链表中查找某值,并且返回值指针-----------------------------------------------------------------------------------------------/**链表中寻找一个特定值,返回该节点值指针 回调函数**/LinkList FindValLinkList(LinkList list,void * data,int(*myFunc)(void *,void *))    {      struct LList *mPtr = NULL;      struct LinkNode *mPcur = NULL;      if (NULL == list||NULL == data||NULL == myFunc)      {       return NULL;      }      mPtr = (struct LList *)list;      mPcur = mPtr->header.next;      while (mPcur != NULL)      {        if (myFunc (mPcur->data,data))        {         break;        }        mPcur = mPcur->next;      }      if (NULL == mPcur)      {        return NULL;      }     return  mPcur->data;     }------------------------------------------------------新增功能:逆序打印链表中元素(不翻转链表) -----------1:采用辅助栈来实现-----------------------------2:采用递归的思想实现(本次用递归来实现------/********* 逆序打印链表(不翻转链表)**********/void PintDLinkList(LinkList list,void (*mPoint)(void *))    {      struct LList *mPtr = NULL;     mPtr = (struct LList *)list;    RecursionForeach(mPtr->header.next, mPoint);}static void RecursionForeach(struct LinkNode *node, void(*myforeach)(void *))    {    if (NULL == node)        {        return;        }    RecursionForeach(node->next, myforeach);    myforeach(node->data);    }
1 0
原创粉丝点击