C 連結串列倒序實現方法

2023-03-19 01:40:35 字數 1302 閱讀 3773

首先,c++連結串列倒序的難點在於如何一個個地修改。雖然不是陣列,但是大概思想是一樣的,所以可以用一個for循序,一個遊標對應for迴圈裡面的 i,只不過要記得前一個節點和後一個節點,尤其是後一個,因為修改之後就訪問不到後面的,所以要記錄。for每一個迴圈只改變所指向的那個節點的指標,這樣既不會亂套了。

用一個for迴圈就非常好理解了,例項**如下所示:

#include

#include

#include

using namespace std;

//連結串列節點類

class node

//copy constructor is not allowed

public:

explicit node(int val = 0) : m_data(val), m_next(null) {}

int getdata() const

void setdata(int val)

node* getnext(void) const

void setnext(node* p)

};//連結串列

class mylist

public:

explicit mylist() : m_head(null), m_tail(null) {}

void addnode(node* pnode);

void show(void) const;

void reverse(void);

void clean(void);

};void mylist::addnode(node* pnode)

else //blank list }

void mylist::show(void) const

}void mylist::reverse(void)

pnode = m_head; //交換頭尾指標

m_head = m_tail;

程式設計客棧m_tail = pnode;

}void mylist::clean(void)

m_head = m_tail = null;

}}int main(void)

listhead.show();

listhead.reverse();

cout << endl;

listhead.show();

li程式設計客棧sthead.clean();

listhead.show();

system("pause"程式設計客棧);

}本文標題: c++連結串列倒序實現方法

本文地址:

倒序單連結串列

倒序單連結串列 異域 蝸牛 425131593 qq.com 近來一些公司筆試時有這題,隨手寫一下 演算法 a.首先儲存1的next 即連結串列前進一個位置到2 然後1的next指向空作為倒序後的最後一個,從此時此刻1起,1相鄰右邊成員的next指向的地址與前一個 左邊一個 成員的地址交換 交換後1...

單連結串列的倒序

單連結串列的翻轉是一道很基本的演算法題。方法1 將單連結串列儲存為陣列,然後按照陣列的索引逆序進行反轉。方法2 使用三個指標遍歷單連結串列,逐個連結點進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第一個節點挪到新表的表尾。方法1的問題是浪費空間。方...

倒序遍歷連結串列

1.使用陣列儲存 設l為帶頭結點的單連結串列,實現從尾到頭反向輸出每個節點的值 void reverseoutput node l i 回到陣列末尾 while i 0 注 1 這種方法雖然可行,但是效率不高,因為空間複雜度為o n 所以就有有了下面這種使用遞迴的手法來完成倒序輸出連結串列。2.使用...

單連結串列的倒序

原文 單連結串列的翻轉是一道很基本的演算法題。方法1 將單連結串列儲存為陣列,然後按照陣列的索引逆序進行反轉。方法3 從第2個節點到第n個節點,依次逐節點插入到第1個節點 head節點 之後,最後將第一個節點挪到新表的表尾。方法1的問題是浪費空間。方法2和方法3效率相當。一般方法2較為常用。方法2 ...

倒序輸出連結串列2020 08 11

輸入一個連結串列的頭節點,從尾到頭反過來返回每個節點的值 用陣列返回 示例 1 輸入 head 1,3,2 輸出 2,3,1 definition for singly linked list.struct listnode note the returned array must be mallo...

連結串列c 實現

include define null 0 class node 節點類 node int n node int n,node p void setnum int n void setnext node p int getnum node getnext private int num node n...

連結串列 C實現

include include 建立連結串列 struct link creat 列印連結串列中的值 void print link struct link 連結串列的逆轉 void reverse struct link 求連結串列的中間值 void middle struct link 判斷連結...

連結串列(C實現)

include include 定義一個連結串列節點結構體 typedef struct nodetag int data struct nodetag next node 建立一個偽頭結點,相當於頭指標的作用 node head 判空 bool empty if null head.next re...

連結串列C 實現

typedef struct node node class linklist linklist bool clearsqlist bool isempty int length void getelem int i,int e int locateelem int e bool priorelem...

C連結串列實現

include define elementtype int typedef struct lnode lnode,linklist 頭插法 元素順序與插入順序相反 param l return linklist headinsert linklist l return l 尾查法 元素順序與插入順...