<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 單向鏈表基本操作的遞歸實(shí)現

單向鏈表基本操作的遞歸實(shí)現

作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò ) 收藏
這幾天正在復習一些基本的算法和實(shí)現,今天看了看遞歸的基本原理,發(fā)現自己對遞歸還不是特別清楚,特別是不清楚遞歸的思想,不能很準確的把握先分解成小事件,在合并的思想,其實(shí)也是數學(xué)歸納法的程序體現,其實(shí)數學(xué)歸納法是一種強大的方法,記得高中的時(shí)候最喜歡做的題目就是數學(xué)歸納方面的證明,現在想過(guò)來(lái)好多問(wèn)題我不能采用這種方式思考,可見(jiàn)知識真的是有聯(lián)系的,只是我們沒(méi)有找到聯(lián)系的方式而已。


為了熟悉遞歸的思想,我嘗試了采用遞歸的方式實(shí)現單向鏈表的基本操作。單向的鏈表是C語(yǔ)言課程中接觸到的中比較復雜的數據結構,但是他確實(shí)其他數據結構的基礎,在一般情況下都是采用迭代的形式實(shí)現,迭代的形式相比遞歸要節省時(shí)間和空間,但是代碼相對來(lái)說(shuō)要復雜,遞歸往往只是簡(jiǎn)單的幾句代碼,我主要是為了熟悉迭代,并不在性能上進(jìn)行分析。

基本的實(shí)現如下所示:

本文引用地址:http://dyxdggzs.com/article/201612/324524.htm

#include
#include

typedef struct listnode
{
int val;
struct listnode *next;
}List;

/*統計節點(diǎn)個(gè)數*/
int count_listnode(List *head)
{
static int count = 0;

if(NULL != head)
{
count += 1;
if(head->next != NULL)
{
count_listnode(head->next);
}

return count;
}
}

/*順序打印*/
void fdprint_listnode(List *head)
{
if(NULL != head)
{
printf("%d ",head->val);
if(head->next != NULL)
{
fdprint_listnode(head->next);
}
}
}
/*反向打印*/
void bkprint_listnode(List *head)
{
if(head != NULL)
{
if(head->next != NULL)
{
bkprint_listnode(head->next);
}

printf("%d ",head->val);
}
}
/*刪除一個(gè)節點(diǎn)的數據為d的節點(diǎn)*/
List *delete_node(List * head, int d)
{
List *temp = head;

if(head != NULL)
{
if(head->val == d)
{
temp = head;
head = head->next;
free(temp);
temp = NULL;
}
else
{
temp = head->next;
if(temp != NULL)
{
temp = delete_node(temp,d);
head->next= temp;
}
}
}

return head;
}

/*刪除所有val = d的節點(diǎn)*/
List* delete_allnode(List *head, int d)
{
List *temp = head, *cur = head;
if(head != NULL)
{
/*如果第一個(gè)就是需要刪除的對象*/
if(cur->val == d)
{
temp = cur;
cur = cur->next;
free(temp);
temp = NULL;
temp = delete_allnode(cur, d);
head = temp;
}
else /*不是刪除的對象*/
{
cur = head->next;
temp = delete_allnode(cur, d);
/*將得到的鏈表連接到檢測的區域*/
head->next= temp;
}
}
return head;
}


上一頁(yè) 1 2 下一頁(yè)

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>