最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C語(yǔ)言中雙向鏈表和雙向循環(huán)鏈表詳解

 更新時(shí)間:2017年06月16日 11:36:25   投稿:lqh  
這篇文章主要介紹了C語(yǔ)言中雙向鏈表和雙向循環(huán)鏈表詳解的相關(guān)資料,需要的朋友可以參考下

雙向鏈表和雙向循環(huán)鏈表

和單向鏈表相比,多了一個(gè)前驅(qū)結(jié)點(diǎn)。如果他為空,那么next和prior都指向自己。而對(duì)于雙循環(huán)鏈表,只需要最后一個(gè)元素的next指向head->next,head->next的prior指向最后一個(gè)節(jié)點(diǎn)即可。

插入操作

新節(jié)點(diǎn)s插入鏈表,s->next給p結(jié)點(diǎn),s->prior給p->prior,然后,p->prior->next指向s,p->prior再指向s。順序需要注意

s->next = p;
s->prior = p->prior;
p->prior->next = s;
p->prior = s;

刪除操作

刪除結(jié)點(diǎn)p。p->next->prior 指向 p->prior,p->prior->next 指向 p->next 。最后將p結(jié)點(diǎn)delete。

p->prior->next = p->next;
p->next->prior = p->prior;
delete p;

實(shí)例操作

(附截圖)

注意:因?yàn)楹瘮?shù)沒有返回Node*類型,所以這里對(duì)指針進(jìn)行引用,否則在退出函數(shù)的時(shí)候,并沒有保存改變。如果需要?jiǎng)h除全部鏈表,需要保存InitList之后的head地址,否則會(huì)遺漏一個(gè)Node結(jié)點(diǎn)沒有刪除。

代碼實(shí)現(xiàn):

#include<iostream>
#include<cstddef>
#include<cstdio>
using namespace std;

const int OK = 1;
const int ERROR = 0;
const int LETTERNUM = 26;
typedef char ElemType;

struct Node{
  ElemType data;
  Node * prior;//前驅(qū)結(jié)點(diǎn)
  Node * next;//后驅(qū)結(jié)點(diǎn) 
};

int InitList(Node *&L){
  Node *p,*q;
  int i;
  
  L = new Node; //頭結(jié)點(diǎn) 
  L->next = L->prior = NULL;
  p = L; //p是當(dāng)前指針
   
  for(int i=0;i<LETTERNUM;i++){
    q = new Node; //q是臨時(shí)指針 
    q->data = 'A' + i;
    q->prior = p;
    q->next = p->next;
    p->next = q;
    p = q;//指針移動(dòng) 
  }
  p->next = L->next; //尾結(jié)點(diǎn)指向head->next(第一個(gè)有字母的地址) 
  L->next->prior = p;
  
  return OK;
}

void Change(Node *&L,int i){ //移動(dòng)頭指針 
  if (i>0){
    while(i--){
      L = L->next;
    }
  }
  else if (i<0){
    L = L->next ; 
    while(i++){
      L = L->prior;
    }
  }
  else{
    L = L->next;
  }
}


int main(){
  Node *head = NULL;
  int i,n;
  InitList(head);
  //Node *s_head = head; // 保存頭結(jié)點(diǎn)之后刪除 
  cout<<"輸入位置:"<<endl;
  cin>>n;
  Change(head,n);
  
  for(i = 0;i<LETTERNUM;++i){
    head = head->next;
    cout<<head->data<<" "; 
  }
  
  cout<<endl;
  return 0;
} 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 黑客帝國(guó)數(shù)字雨效果VC6源代碼分享

    黑客帝國(guó)數(shù)字雨效果VC6源代碼分享

    這篇文章主要介紹了黑客帝國(guó)數(shù)字雨效果VC6源代碼分享,本文直接給出實(shí)現(xiàn)代碼,Win7下編譯通過,效果很酷,需要的朋友可以參考下
    2015-02-02
  • C指針原理教程之語(yǔ)法樹及其實(shí)現(xiàn)

    C指針原理教程之語(yǔ)法樹及其實(shí)現(xiàn)

    本文給大家分享的是如何使用C語(yǔ)言的指針原來(lái)來(lái)實(shí)現(xiàn)語(yǔ)法樹,并給大家提供了詳細(xì)的實(shí)例代碼,希望大家能夠喜歡
    2019-02-02
  • 淺析c#中如何在form的webbrowser控件中獲得鼠標(biāo)坐標(biāo)

    淺析c#中如何在form的webbrowser控件中獲得鼠標(biāo)坐標(biāo)

    以下是對(duì)c#中如何在form的webbrowser控件中獲得鼠標(biāo)坐標(biāo)的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • C語(yǔ)言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換

    C語(yǔ)言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換

    這篇文章主要介紹了C語(yǔ)言標(biāo)準(zhǔn)時(shí)間與秒單位相互轉(zhuǎn)換,秒單位與標(biāo)準(zhǔn)時(shí)間的轉(zhuǎn)換方式,這份代碼一般用在嵌入式單片機(jī)里比較多,比如:設(shè)置RTC時(shí)鐘的時(shí)間,從RTC里讀取秒單位時(shí)間后,需要轉(zhuǎn)換成標(biāo)準(zhǔn)時(shí)間顯示。下文分享需要的小伙伴可以參考一下
    2022-05-05
  • c++編程學(xué)習(xí)的技巧總結(jié)

    c++編程學(xué)習(xí)的技巧總結(jié)

    在本篇文章里小編給大家分享了關(guān)于c++編程學(xué)習(xí)的技巧以及知識(shí)點(diǎn)總結(jié),需要的朋友們學(xué)習(xí)下。
    2019-03-03
  • C++實(shí)現(xiàn)快速排序(Quicksort)算法

    C++實(shí)現(xiàn)快速排序(Quicksort)算法

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)快速排序(Quicksort)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • C++中的vector中erase用法實(shí)例代碼

    C++中的vector中erase用法實(shí)例代碼

    在vector數(shù)組中我們刪除數(shù)組經(jīng)常用的就是erase方法,但是earse的用法一不注意就會(huì)出錯(cuò),今天我就遇到了,所以在這里總結(jié)一下,避免大家用錯(cuò),對(duì)vector中erase用法感興趣的朋友跟隨小編一起看看吧
    2022-11-11
  • C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換

    C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換

    這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)百度坐標(biāo)(BD09)及GCJ02與WGS84之間的轉(zhuǎn)換的方法,文中的示例代碼講解詳細(xì),希望對(duì)大家有所幫助
    2023-03-03
  • C++中Pimpl的慣用法詳解

    C++中Pimpl的慣用法詳解

    Pimpl(Pointer?to?Implementation)是一種常見的?C++?設(shè)計(jì)模式,用于隱藏類的實(shí)現(xiàn)細(xì)節(jié),本文將通過一個(gè)較為復(fù)雜的例子,展示如何使用智能指針來(lái)實(shí)現(xiàn)?Pimpl?慣用法,需要的可以參考下
    2023-09-09
  • 一篇文章帶你了解C++模板編程詳解

    一篇文章帶你了解C++模板編程詳解

    這篇文章主要介紹了C++的模板,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-11-11

最新評(píng)論

福安市| 夹江县| 清原| 周口市| 股票| 夏邑县| 丰都县| 龙井市| 商水县| 分宜县| 河源市| 贵南县| 武冈市| 姜堰市| 潼南县| 渭源县| 禹城市| 阿合奇县| 灯塔市| 丁青县| 东源县| 桃江县| 西丰县| 普兰县| 建昌县| 永丰县| 新密市| 渝中区| 南投市| 固镇县| 丰县| 抚松县| 砚山县| 通江县| 永寿县| 阿勒泰市| 普格县| 叙永县| 贵阳市| 灵寿县| 邢台市|