亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

C++數據結構與算法之反轉鏈表的方法詳解

2020-01-26 13:57:00
字體:
來源:轉載
供稿:網友

本文實例講述了C++數據結構與算法之反轉鏈表的方法。分享給大家供大家參考,具體如下:

算法概述:要求實現將一條單向鏈表反轉并考慮時間復雜度。

算法分析:

數組法(略):

將列表元素逐個保存進數組,之后再逆向重建列表
點評:實現邏輯最簡單,需要額外的內存開銷。

移動指針:

通過三個指針逐個從鏈表頭開始逐一反轉鏈表元素的指針
點評:不需要額外的內存開銷,會改變原始鏈表。

遞歸:

以遞歸的方式首先找到鏈表尾部,再逐一反轉指針
點評:不需要額外的內存開銷,不會改變原始鏈表。

算法實現:

構建鏈表結構

/* 節點結構 */struct NODE{ int data; struct NODE* next;};/* 添加元素-壓棧 */void push(NODE** head, int dat) { struct NODE* new_node = new NODE(); new_node->data = dat; new_node->next = *head; *head = new_node;}/* 添加元素-添加 */void add(NODE** head, int dat) { struct NODE* new_node = new NODE(); new_node->data = dat; new_node->next = NULL; if (*head != NULL) {  struct NODE* temp = *head;  while (temp->next != NULL) {   temp = temp->next;  }   temp->next = new_node; } else {  *head = new_node; }}

移動指針

/* 反轉列表 */void reverse(NODE** head) { struct NODE* pre = NULL; struct NODE* cur = *head; struct NODE* nxt; while (cur != NULL) {  // 反轉指針  nxt = cur->next;  cur->next = pre;  // 移動指針  pre = cur;  cur = nxt; } *head = pre;}

遞歸

/* 反轉列表-復制原表返回反轉表 */NODE* reverse(NODE* head) { if (head == NULL || head->next == NULL) {  return head; } NODE* new_head = reverse(head->next); // 反轉指針 head->next->next = head; head->next = NULL; return new_head;}

打印鏈表

/* 打印隊列 */void print(NODE* head) { NODE* temp = head; while (temp != NULL) {  std::cout << temp->data << std::endl;  temp = temp->next; }}

完整代碼如下:

#include <iostream>/* 節點結構 */struct NODE{  int data;  struct NODE* next;};/* 添加元素-壓棧 */void push(NODE** head, int dat) {  struct NODE* new_node = new NODE();  new_node->data = dat;  new_node->next = *head;  *head = new_node;}/* 添加元素-添加 */void add(NODE** head, int dat) {  struct NODE* new_node = new NODE();  new_node->data = dat;  new_node->next = NULL;  if (*head != NULL) {    struct NODE* temp = *head;    while (temp->next != NULL) {      temp = temp->next;    }      temp->next = new_node;  }  else {    *head = new_node;  }}/* 反轉列表 */void reverse(NODE** head) {  struct NODE* pre = NULL;  struct NODE* cur = *head;  struct NODE* nxt;  while (cur != NULL) {    // 反轉指針    nxt = cur->next;    cur->next = pre;    // 移動指針    pre = cur;    cur = nxt;  }  *head = pre;}/* 反轉列表-復制原表返回反轉表 */NODE* reverse(NODE* head) {  if (head == NULL || head->next == NULL) {    return head;  }  NODE* new_head = reverse(head->next);  // 反轉指針  head->next->next = head;  head->next = NULL;  return new_head;}/* 打印隊列 */void print(NODE* head) {  NODE* temp = head;  while (temp != NULL) {    std::cout << temp->data << std::endl;    temp = temp->next;  }}int main() {  struct NODE* n = NULL;  add(&n, 1);  add(&n, 2);  add(&n, 3);  n = reverse(n);  print(n);  return 0;}

希望本文所述對大家C++程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
青青草原一区二区| 亚洲最大福利视频网站| 国产日韩欧美在线| 国产精品精品国产| 国产精品香蕉av| 2019精品视频| 在线播放国产精品| 亚洲第一天堂无码专区| 日韩小视频在线观看| 久久久精品久久| 国产精品一区专区欧美日韩| 日韩中文字幕免费视频| 国产激情视频一区| 亚洲一区二区三区乱码aⅴ蜜桃女| 一本一道久久a久久精品逆3p| 国产91免费观看| 97精品免费视频| 91亚洲人电影| 日韩大片在线观看视频| 欧美视频在线视频| 国产一区二区三区四区福利| 俺去啦;欧美日韩| 国产精品久久久久久久一区探花| 国产成人免费91av在线| 国产精品精品国产| 亚洲第一精品夜夜躁人人爽| 亚洲日韩中文字幕| 2021久久精品国产99国产精品| 亚洲一区中文字幕在线观看| 伊人激情综合网| 亚洲字幕在线观看| 欧美中文字幕第一页| 一区二区三区在线播放欧美| 这里只有精品久久| 91视频国产精品| 精品福利一区二区| 奇米一区二区三区四区久久| 欧美高清激情视频| 精品国产区一区二区三区在线观看| 亚洲视频axxx| 色综合久久精品亚洲国产| 国产午夜精品一区二区三区| 97视频免费观看| 成人福利网站在线观看11| 91精品国产自产在线观看永久| 国产免费一区视频观看免费| 亚洲精品中文字| 一区二区三区高清国产| 欧美性猛交xxxxx免费看| 欧美大尺度激情区在线播放| 国产精品极品美女粉嫩高清在线| 久久不射热爱视频精品| 亚洲国产日韩欧美在线图片| 欧美黄色片免费观看| 日韩av在线免播放器| 国产在线观看精品| 亚洲四色影视在线观看| 日韩精品视频三区| 亚洲石原莉奈一区二区在线观看| 国产精品一区二区3区| 亚洲乱亚洲乱妇无码| 中国人与牲禽动交精品| 中文字幕亚洲一区二区三区| 亚洲欧美日韩一区二区在线| 日本高清视频一区| 欧美成人精品xxx| 国产日韩精品综合网站| 亚洲美女性生活视频| 大桥未久av一区二区三区| 国产精品嫩草视频| 久久久av电影| 久久av红桃一区二区小说| 国产精品久久久久一区二区| 亚洲国产欧美一区二区三区同亚洲| 欧美精品免费在线| 精品久久久久久中文字幕大豆网| 日韩欧美在线免费| 91国产一区在线| 欧美激情在线观看视频| 尤物九九久久国产精品的特点| 91国内产香蕉| 国产日韩在线亚洲字幕中文| 7777精品久久久久久| 45www国产精品网站| 国产精品久久久久久久久免费看| 午夜精品免费视频| www.亚洲男人天堂| 欧美高清在线播放| 日韩成人在线网站| 久久精品国产96久久久香蕉| 91免费人成网站在线观看18| 亚洲深夜福利在线| 欧美人与性动交| 久久久久久久久国产精品| 成人激情视频在线播放| 亚洲成人黄色在线观看| 国产精欧美一区二区三区| 亚洲色图25p| 亚洲一区二区三区视频播放| 成人国产在线视频| 国产精品大片wwwwww| 亚洲天堂网站在线观看视频| 色妞久久福利网| 亚洲国产精品悠悠久久琪琪| 欧美中文字幕在线| 日韩av大片免费看| 亚洲欧美国产制服动漫| 欧美激情视频给我| 久久久最新网址| 国产欧美va欧美va香蕉在| 米奇精品一区二区三区在线观看| 欧美性xxxx在线播放| 国产精品一区二区三区免费视频| 日本一区二区在线免费播放| 欧美大码xxxx| 国产成人精品视频在线观看| 亚洲国产精品女人久久久| 国产精品亚洲自拍| 中文字幕亚洲一区在线观看| 亚洲国产精品网站| 一区二区在线免费视频| 韩国三级日本三级少妇99| 国产suv精品一区二区三区88区| 国产丝袜精品视频| 久久久久久久激情视频| 亚洲成avwww人| 国产视频999| 国产欧美韩国高清| 亚洲久久久久久久久久| 国产91免费观看| 国产日韩欧美日韩| 爽爽爽爽爽爽爽成人免费观看| 97久久精品在线| 国产亚洲福利一区| 久久久成人av| 亚洲精品一区二区久| 亚洲白拍色综合图区| 亚洲免费电影一区| 日本一区二三区好的精华液| 久久精品国产99国产精品澳门| 国产精品色视频| 插插插亚洲综合网| 日韩在线不卡视频| 91中文在线观看| 日韩精品在线免费播放| 91精品国产综合久久香蕉922| 久久国产精品免费视频| 亚洲欧洲在线免费| 国产一区二区三区免费视频| 亚洲aⅴ男人的天堂在线观看| 视频在线观看99| 伊人亚洲福利一区二区三区| 91高潮在线观看| 亚洲精品电影在线观看| 成人免费高清完整版在线观看| 亚洲精品免费在线视频| 欧美日韩中国免费专区在线看| 欧美电影在线观看完整版| 亚洲精品理论电影| 日本视频久久久| 午夜免费在线观看精品视频| 性欧美长视频免费观看不卡| 2019日本中文字幕| 亚洲成在人线av|