0016單鏈表的完整功能及單鏈表翻轉

2021-07-06 11:25:02 字數 1831 閱讀 9760

首先是單鏈表節點的類,在命名為onelinknode.h的標頭檔案裡:

#ifndef onelinknode_h_

#define onelinknode_h_

class onelinknode

~onelinknode()

{}};

#endif//onelinknode_h_

再在另乙個新的標頭檔案onelink.h中寫以下**:

#ifndef onelink_h_

#define onelink_h_

class onelink

bool isfull()const

int length()const;

onelinknode* index(int i)const;//定位第i個節點

int get(int i)const;//獲得第i個節點

bool set(int i,int k);//設定第i個節點的資料域

onelinknode* insert(onelinknode* p,int k);//將k插入到第

bool remove(onelinknode* p);

void output(onelinknode* p)const;

void output()const; };

#endif//onelink_h_

onelink類中的功能函式的實現,在資源檔案中新新增乙個cpp檔案,加入以下**:

//本文件實現單鏈錶類中的功能函式

#include #include"onelinknode.h"

#include "onelink.h"

using namespace std;

//用建構函式來建立乙個單鏈表

onelink::onelink(int n) }}

//用析構函式來撤銷單鏈表

onelink::~onelink()

head = null;

}//返回單鏈表的長度

int onelink::length()const

return i;

}//定位,返回的是乙個節點指標

onelinknode* onelink::index(int i)const

return p;

}//設定單鏈表第i個節點的資料域數值

bool onelink::set(int i,int k)

else

return false;

}//輸出列印單鏈表,分兩步,一部輸出普通的節點,一步輸出head為指標的單鏈表

void onelink::output(onelinknode *p)const

cout<

}//輸出head指標指向的資料

void onelink::output()const

資源檔案中的主函式裡,我們用乙個單鏈表翻轉操作來部分檢驗以上所做的工作是否正確:

#includeusing namespace std;

#include "onelinknode.h"

#include "onelink.h"

void reverse(onelink &h)

h.head=front;

}void main(void)

結果:

希望對初學者有幫助。2023年11月6日,西大樓。

反轉有序鏈單鏈表

本文總結了2種方法。單鏈表node的資料結構定義如下 class listnode 把當前鍊錶的下乙個節點pcur插入到頭結點dummy的下乙個節點中,就地反轉。dummy 1 2 3 4 5的就地反轉過程 pcur是需要反轉的節點。prev連線下一次需要反轉的節點 反轉節點pcur 糾正頭結點du...

單鏈表簡單功能實現

看了鍊錶題,基本上不會做,然後各種找部落格,初次嘗試寫了寫,感覺指定值刪除的功能有點難 所以沒有寫,待學習過後會補上 其他的還可以,這裡面的尤其要注意的是用temp轉換head進行遍歷,主要的 如下,大神多給點學習的建議,謝謝 這是功能體 package csdn public class link...

單鏈表函式功能實現

pragma once include include include typedef int sdatatype typedef struct slistnode node typedef struct slist slist void slistinit slist pl 初始化 node cr...