鍊錶 遞迴刪除不帶頭結點鍊錶所有x元素

2022-05-02 04:57:09 字數 837 閱讀 2181

王道p37 t1 :

設計乙個遞迴演算法,刪除不帶頭結點的單鏈表l中所有值為x的結點。

王道上的答案絕對是錯的,我自己想了乙個

函式主體

linklist* del_x(linklist* prior,linklist* l,int

x)else

}if(l->data!=x)

}

呼叫方法:

l=*del_x(null,&l,2);
完整**:

#include #include 

using

namespace

std;

typedef

struct

linklist

linklist(

intx)

}linklist;

linklist build_list(

int *arr,int

n)

returnl;}

void print_list(linklist &l)

puts(

"");

}linklist* del_x(linklist* prior,linklist* l,int

x)else

}if(l->data!=x)

}int

main();

linklist l=build_list(arr,6

); print_list(l);

l=*del_x(null,&l,2

); print_list(l);

}

view code

測試效果:

資料結構 帶頭結點鍊錶和不帶頭結點鍊錶操作比較

帶頭結點的鍊錶和不帶頭結點的鍊錶主要不同點在插入和刪除操作上。同時要注意,帶頭結點的鍊錶初始化操作時建立頭結點。下面我們來看一下 中的異同 include include includetypedef int elemtype typedef struct nodenode int insertla...

不帶頭結點的雙向迴圈鍊錶

基本概念 迴圈鍊錶 將單鏈表中最後乙個結點的next指向頭結點或者空指標,就使得整個單鏈表形成乙個環,這種頭尾相接的單鏈表稱為單迴圈鍊錶,簡稱迴圈鍊錶。雙向鍊錶 是在單鏈表的每個結點中,再設定乙個指向其前驅結點的指標域prior,在雙向鍊錶的結點中有兩個指標域,乙個next指向直接後繼,乙個prio...

不帶頭結點的單迴圈鍊錶

建立標頭檔案nlist.h pragma once 不帶頭節點的鍊錶,主要應用在迴圈鍊錶中,其缺點,操作複雜 會出現二級指標 優點 靈活 頭指標指向哪個節點哪個節點就是第乙個節點 不帶頭節點的單鏈迴圈鍊錶,尾節點的next指向第乙個節點 typedef struct nnode nnode,pnli...