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

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

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

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

和單向鏈表相比,多了一個(gè)前驅(qū)結(jié)點(diǎn)。如果他為空,那么next和prior都指向自己。而對于雙循環(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*類型,所以這里對指針進(jìn)行引用,否則在退出函數(shù)的時(shí)候,并沒有保存改變。如果需要?jiǎng)h除全部鏈表,需要保存InitList之后的head地址,否則會遺漏一個(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;//指針移動 
  }
  p->next = L->next; //尾結(jié)點(diǎn)指向head->next(第一個(gè)有字母的地址) 
  L->next->prior = p;
  
  return OK;
}

void Change(Node *&L,int i){ //移動頭指針 
  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;
} 

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

相關(guān)文章

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

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

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

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

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

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

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

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

    這篇文章主要介紹了C語言標(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í)的技巧以及知識點(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的用法一不注意就會出錯(cuò),今天我就遇到了,所以在這里總結(jié)一下,避免大家用錯(cuò),對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ì),希望對大家有所幫助
    2023-03-03
  • C++中Pimpl的慣用法詳解

    C++中Pimpl的慣用法詳解

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

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

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

最新評論

巴彦淖尔市| 肇州县| 平陆县| 武定县| 高要市| 宣武区| 津市市| 龙里县| 时尚| 宣武区| 霍城县| 方正县| 临西县| 临汾市| 靖州| 乌拉特中旗| 肥乡县| 安顺市| 灵山县| 桃江县| 汽车| 巨野县| 澜沧| 太白县| 磴口县| 措勤县| 海兴县| 台前县| 扎兰屯市| 贡觉县| 资溪县| 河北区| 胶州市| 班玛县| 林州市| 襄城县| 布拖县| 小金县| 贵州省| 海丰县| 乌鲁木齐市|