欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++數(shù)據(jù)結(jié)構(gòu)之雙向鏈表

 更新時(shí)間:2022年05月26日 16:36:48   作者:W...Z  
這篇文章主要為大家詳細(xì)介紹了C++數(shù)據(jù)結(jié)構(gòu)之雙向鏈表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了C++數(shù)據(jù)結(jié)構(gòu)之雙向鏈表的具體代碼,供大家參考,具體內(nèi)容如下

#include <iostream>
using std::cout;
using std::endl;
struct Node
{
?? ?int data;
?? ?struct Node * next;
?? ?struct Node * pre;
};

一、創(chuàng)建雙向鏈表

Node * createList()
{
?? ?Node * head = new Node;
?? ?if (NULL == head)
?? ??? ?exit(-1);
?? ?head->next = head;
?? ?head->pre = head;
?? ?return head;
}

二、插入元素(頭插法)

讓新來的節(jié)點(diǎn)先有所指

void insertList(Node * head,int n)
{
?? ?Node * cur = new Node;
?? ?if (NULL == cur)
?? ??? ?exit(-1);
?? ?cur->next = head->next;
?? ?cur->pre = head;
?? ?head->next = cur;
?? ?cur->next->pre = cur;
?? ?
?? ?cur->data = n;
}

三、鏈表長度

int lenList(Node * head)
{
?? ?int i = 0;
?? ?Node * t = head->next;
?? ?while (t != head)
?? ?{
?? ??? ?i++;
?? ??? ?t = t->next;
?? ?}
?? ?return i;
}

四、查找遍歷

Node * findList(Node * head,int fn)
{
?? ?Node * forward = head->next;
?? ?Node * back = head->pre;
?? ?while (forward != back->next)
?? ?{
?? ??? ?if (forward->data == fn)
?? ??? ??? ?return forward;
?? ??? ?if (back->data == fn)
?? ??? ??? ?return back;
?? ??? ?if (forward == back)
?? ??? ??? ?break;
?? ??? ?forward = forward->next;
?? ??? ?back = back->pre;
?? ?}
?? ?return NULL;
}

五、刪除其中元素

void deleteList(Node * pFind)
{
?? ?pFind->pre->next = pFind->next;
?? ?pFind->next->pre = pFind->pre;
?? ?delete pFind;
}

六、排序

(類似于先刪除 再插入)

void sortDlist(Node * head)
{
?? ?int len = lenList(head);
?? ?Node *prep = NULL;
?? ?Node *p = NULL;
?? ?Node *q = NULL;
?? ?Node *t = NULL;
?? ?for (int i = 0;i < len - 1;i++)
?? ?{
?? ??? ?p = head->next;
?? ??? ?q = p->next;
?? ??? ?for (int j = 0;j < len - 1 - i;j++)
?? ??? ?{
?? ??? ??? ?if ((p->data)<(q->data))
?? ??? ??? ?{
?? ??? ??? ??? ?p->pre->next = q;
?? ??? ??? ??? ?q->pre = p->pre;

?? ??? ??? ??? ?p->next = q->next;
?? ??? ??? ??? ?p->pre = q;

?? ??? ??? ??? ?q->next = p;
?? ??? ??? ??? ?p->next->pre = p;

?? ??? ??? ??? ?t = p;
?? ??? ??? ??? ?p = q;
?? ??? ??? ??? ?q = t;
?? ??? ??? ?}
?? ??? ??? ?p = p->next;
?? ??? ??? ?q = q->next;
?? ??? ?}
?? ?}
}

七、銷毀鏈表

void desList(Node * head)
{
?? ?head->pre->next = NULL;
?? ?Node *t = NULL;
?? ?while (head != NULL)
?? ?{
?? ??? ?t = head;
?? ??? ?head = head->next;
?? ??? ?delete t;
?? ?}
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++?STL?中的數(shù)值算法示例講解

    C++?STL?中的數(shù)值算法示例講解

    本片文章講解了C++STL?中的數(shù)值算法,包含iota、accumulate、adjacent_difference、inner_product、partial_sum這些方法的使用,感興趣的朋友來看看吧<BR>
    2022-04-04
  • C語言編程中建立和解除內(nèi)存映射的方法

    C語言編程中建立和解除內(nèi)存映射的方法

    這篇文章主要介紹了C語言編程中建立和解除內(nèi)存映射的方法,分別為mmap()函數(shù)和munmap()函數(shù)的使用,需要的朋友可以參考下
    2015-08-08
  • C++隊(duì)列用法實(shí)例

    C++隊(duì)列用法實(shí)例

    這篇文章主要介紹了C++隊(duì)列用法,實(shí)例分析了C++實(shí)現(xiàn)隊(duì)列的入隊(duì)、出隊(duì)、讀取與判斷等相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • 通過C語言判斷字符串是否為點(diǎn)分十進(jìn)制的IP地址

    通過C語言判斷字符串是否為點(diǎn)分十進(jìn)制的IP地址

    這篇文章主要為大家詳細(xì)介紹了如何通過C語言判斷字符串是否為點(diǎn)分十進(jìn)制的IP地址,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-03-03
  • C/C++讀取大文件數(shù)據(jù)方式詳細(xì)講解

    C/C++讀取大文件數(shù)據(jù)方式詳細(xì)講解

    這篇文章主要介紹了C語言/C++讀取大文件數(shù)據(jù)的完整方式過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • C++類模板與模板類深入詳解

    C++類模板與模板類深入詳解

    這篇文章主要介紹了C++類模板與模板類深入詳解,需要的朋友可以參考下
    2014-07-07
  • C++實(shí)現(xiàn)將數(shù)據(jù)寫入Excel工作表的示例代碼

    C++實(shí)現(xiàn)將數(shù)據(jù)寫入Excel工作表的示例代碼

    直觀的界面、出色的計(jì)算功能和圖表工具,使Excel成為最流行的個(gè)人計(jì)算機(jī)數(shù)據(jù)處理軟件。在本文中,您將學(xué)習(xí)如何使用?Spire.XLS?for?C++?創(chuàng)建?Excel?文檔,以及如何將數(shù)據(jù)寫入?Excel?工作表
    2023-03-03
  • C++11中使用using的方法

    C++11中使用using的方法

    在 C++ 中 using 用于聲明命名空間,使用命名空間也可以防止命名沖突。這篇文章主要介紹了C++11中使用using的方法,需要的朋友可以參考下
    2021-09-09
  • c++中引用作為形參的使用方法以及作用

    c++中引用作為形參的使用方法以及作用

    這篇文章主要給大家介紹了關(guān)于c++中引用作為形參的使用方法以及作用的相關(guān)資料,引用是地址傳值,作為引用的形參數(shù)值被修改的同時(shí),也修改了對應(yīng)實(shí)參的值,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • C++11新特性之a(chǎn)uto的使用

    C++11新特性之a(chǎn)uto的使用

    熟悉腳本語言的人都知道,很多腳本語言都引入了“類型自動(dòng)推斷”技術(shù):比如Python,可以直接聲明變量,在運(yùn)行時(shí)進(jìn)行類型檢查。隨著C++11標(biāo)準(zhǔn)的發(fā)布,C++語言也引入了類型自動(dòng)推斷的功能。這篇文章主要介紹了C++11新特性之a(chǎn)uto的使用,有需要的朋友們可以參考借鑒。
    2016-12-12

最新評論