鍊錶逆置合集

2021-10-03 04:37:11 字數 1877 閱讀 6191

鍊錶逆置

#includeusing namespace std;

struct lnode

;void creathead(lnode *&l,int a,int n)///尾插法

r->next=null;

}void reverse(lnode *&l)

}int main()

printf("\n");

return 0;

}

將乙個鍊錶分解為偶數鍊錶和奇數鍊錶

#includeusing namespace std;

struct lnode

;void creathead(lnode *&l,int a,int n)///尾插法

r->next=null;

}

/把a分解為a裡面節點值為偶數

b裡面節點值為奇數*/

void split(lnode *a,lnode *&b)

else

p=p->next;

}}int main()

printf("\n");

printf("偶數\n");

while(b->next!=null)

return 0;

}

將兩個遞增鍊錶歸併為乙個遞減鍊錶

#includeusing namespace std;

struct lnode

;void merge(lnode *&a,lnode *b)

else

}while(p!=null)

while(q!=null)

}void creathead(lnode *&l,int a,int n)///尾插

r->next=null;

}int main()

return 0;

}

將乙個鍊錶分解為兩個鍊錶:

第乙個鍊錶中含有原煉表中序號為奇數的節點

第二個鍊錶中含有原煉表中序號為偶數數的節點

#includeusing namespace std;

struct lnode

;void bianhao(lnode *l)

}void split(lnode *a,lnode *&b)

else

p=p->next;

}}void creathead(lnode *&l,int a,int n)///頭插法

r->next=null;

}int main()

printf("\n");

printf("偶數\n");

while(b->next!=null)

return 0;

}

將乙個鍊錶分解成兩個鍊錶

第乙個鍊錶中含有原煉表中小於0的節點

第二個鍊錶中含有原煉表中大於0的節點

#includeusing namespace std;

struct lnode

;void create(lnode *l,int a,int n)///尾插

r->next=null;

}void solve(lnode *l,lnode *&b,lnode *&c)

else

}while(b->next!=null)

while(c->next!=null)

}int main()

鍊錶就地逆置

就地逆置,就是在不借助任何中間變數的情況下,逆置一單鏈表。演算法思路 逆置後的點鍊錶初始為空,表中的節點不是新生成的,而是從原鍊錶當中一次 刪除 再逐個頭插到逆置表中。設逆置鍊錶的初始態為空表,刪除 已知鍊錶中 的第乙個節點,然後將它 插入 到逆置鍊錶的 表頭 即使得他成為逆置鍊錶中 新 的第乙個節...

鍊錶的逆置

5.鍊錶的逆置 已知head指向乙個帶頭節點的單向鍊錶,鍊錶中每個結點包含資料域和指標域。用鍊錶實現該鍊錶的逆置,並輸出。例如 輸入 5 整數表示要輸入的字元個數 abcde 輸出 edcba 注意 不允許通過改變每個節點的資料域來實現效果,必須改變鍊錶連線順序發生逆置。我寫的 如下 include...

鍊錶的逆置

剛剛除錯出來,趁熱寫一下。輸入多個整數,以 1作為結束標誌,順序建立乙個帶頭結點的單鏈表,之後對該單鏈表的資料進行逆置,並輸出逆置後的單鏈表資料。input 輸入多個整數,以 1作為結束標誌。output 輸出逆置後的單鏈表資料。sample input 12 56 4 6 55 15 33 62 ...