
【DataStructure】
_HelloBug
这个作者很懒,什么都没留下…
展开
-
一:单链表的创建、打印和释放
/* * 带头结点的单链表相关操作 * */#include <stdio.h>#include <stdlib.h>typedef struct node { int iData; struct node *pNext;}NODE_t;NODE_t * CreateEmptySList() { NODE_t *pHead...原创 2018-10-21 16:35:13 · 335 阅读 · 0 评论 -
二:单链表的反转-递归和循环方式实现
单链表的创建、打印和释放见博客 一:单链表的创建、打印和释放1. 递归方式实现单链表的反转/** *@param pList NODE_t * :带头结点的单链表的第一个有效结点 */NODE_t * SListRecur(NODE_t *pFirst) { if (pFirst == NULL || pFirst->pNext == NULL) { ...原创 2018-10-21 16:41:55 · 253 阅读 · 0 评论 -
三:单链表中环的检测、环的入口结点和环的长度
单链表的创建、打印和释放见博客 一:单链表的创建、打印和释放1. 创建带环单链表/** * 创建带环单链表 * @param[in] aArray[] int :单链表结点值的数组 * @param[in] iCnt int :单链表结点值的数组长度 * @param[in] iIdx int :单链表环入口结点值在数组中的位置 */NODE_t * Crea...原创 2018-10-21 16:50:03 · 551 阅读 · 0 评论 -
写递归函数的正确思维方法
递归是编程中一个相对难以理解但是却又很重要的概念. 对于从命令式语言开始学习编程的程序员天生对此有理解缺陷, 而对于从类似C++这种对函数式编程范式不友好的语言开始学习编程的程序员就更加如此了.(比如我自己) 碰巧(其实不巧)最近在读这本书(这本书国内没有引进, 网上只有巨贵的亚马逊卖的原版, 我读的是网上的中文版), Paul Graham在书中讲述的如何写递归函数的部分, 让我印象深刻....转载 2018-10-24 18:01:13 · 216 阅读 · 0 评论 -
四:有序单链表的合并-递归和循环方式实现
带头单链表的创建、打印和释放见博客 一:单链表的创建、打印和释放1. 递归方式实现思路:如果两个结点比较大小,较小结点指向较小结点后面的所有的结点和 较大结点及其后面结点 合并后的单链表。最简单情况两个结点其中一个为空,合并结果直接是另一个结点。/* * 递归实现两个有序单链表的合并 * @param[in] pNode1 NODE_t * :单链表的第一个有效结点 * @pa...原创 2018-10-24 20:26:00 · 477 阅读 · 0 评论