青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨感而發

雜七雜八

統計

留言簿(13)

閱讀排行榜

評論排行榜

鏈表學習--雙向鏈表實現

今天學習了鏈表的數據結構。他的主要思路為:
1. 他訪問數據的方式不是數組的下標,而是他的節點的指針來訪問。所以他可以更靈活的處理數據見得相關信息。不過他的速度肯定沒有數組下標快的,空間也沒有數組利用率高,可他的靈活性給了我們很大的方便。我們用鏈表的時候還是很多的。
2. 鏈表是用指針的指向來訪問管理數據的,一個我們把數據存在一個節點里,一個節點包括:nData,節點的數據域,nNext,他指向的下一個指針,nPre他的上一個指針。如果他沒有下一個指針或上一個指針,我們指向空nil.
3. 一般一個鏈表有一個頭節點。以他開始訪問整個鏈表區域的數據。這樣我們就能更好的控制鏈表了,就像數組下標為0的元素一樣。A[0]的地位。
截取書上的圖:

這就是一個鏈表的樣子了。呵呵 是不是很直觀呢?
鏈表主要的操作包括:
插入,刪除,查找,清空,等主要操作。
很重要的數據結構,奉上源代碼:

#include <stdio.h>
#include 
<stdlib.h>

//定義鏈表的結構體。
struct MyList
{
    
int nData;
    MyList
* pPre;
    MyList
* pNext;
}
;

//全局的變量,保存鏈表的頭
MyList* g_pHead = NULL;

//判斷鏈表是否為空
bool IsEmpty()
{
    
//如果頭指針指向的是空,鏈表為空
    return g_pHead == NULL;
}


//清空鏈表
int Clear()
{
    
//刪除所有數據,并把頭指針指向為空
    MyList* pTemp = g_pHead;

    
//遍歷鏈表的數據。如果有數據,刪除,然后進入下一個數據
    while(g_pHead)
    
{
        g_pHead 
= g_pHead->pNext;
        delete pTemp;
        pTemp 
= g_pHead;
    }


    
return 1;
}


//插入數據到鏈表中
int Insert(int nData)
{
    
//這里是插入到頭的位置,類似棧的操作。
    MyList* pTemp = new MyList();    //申請一個新的空間存放數據。
    pTemp->nData = nData;
    pTemp
->pPre = NULL;            //他的上一個沒有
    pTemp->pNext = g_pHead;        //他的next指向頭節點,他作為頭節點的上一個成為新頭節點
    if (g_pHead)
    
{
        g_pHead
->pPre = pTemp;    //如果頭節點有數據,則把頭節點的上一個指向該節點。
    }

    g_pHead 
= pTemp;            //是頭節點指針指向他,他成為新的頭節點

    
return 1;
}


//查找數據
bool Find(int nData)
{
    MyList
* pTemp = g_pHead;        //從頭節點開始尋找。
    
//遍歷數據
    while(pTemp)
    
{
        
if (pTemp->nData == nData)    //如果找到該數據,
        {
            
return true;            //返回真。
        }


        pTemp 
= pTemp->pNext;        //沒有找到,進入下一個節點
    }


    
return false;            //遍歷之后沒有找到,則沒有該數據,返回false
}


//刪除數據。
bool Delete(int nData)
{
    
//先找到數據,然后再刪除。
    MyList* pTemp = g_pHead;    //要刪除的節點指針。    

    
//遍歷鏈表找到要刪除的節點
    while (pTemp)        
    
{
        
if (pTemp->nData == nData)    //找到了,刪除它
        {
            
if (pTemp->pPre)    //如果他有前一個節點,則前一個節點的next指向他的下一個節點
            {                    //這樣就不會吊鏈了。
                pTemp->pPre->pNext = pTemp->pNext;
            }

            
else        //沒有上一個節點,則他就是頭節點。
            {
                g_pHead 
= pTemp->pNext;    //頭節點指針指向他,他就可以安息了。
            }


            
if (pTemp->pNext)    //處理他的下一個節點情況,和上節點類似
            {
                pTemp
->pNext->pPre = pTemp->pPre;
            }


            delete pTemp;    
//刪除它的數據空間
            return true;    //返回true,刪除成功
        }

    }


    
return false;    //沒有找到數據,刪除失敗,返回false
}


int main()
{
    
//測試,
    for (int i = 0; i < 10++i)
    
{
        Insert(i);    
//插入數據
    }


    
if (Find(5)) //查找數據
    {
        printf(
"Yes!\n");
    }

    
if (!Find(11))
    
{
        printf(
"No!\n");
    }


    
while(!IsEmpty())    //逐一刪除數據
    {
        printf(
"%d ", g_pHead->nData);
        Delete(g_pHead
->nData);
    }

    printf(
"\n");
    
for (int i = 0; i < 10++i)
    
{
        Insert(i);
    }


    Clear();        
//清空數據。
    if (IsEmpty())
    
{
        printf(
"Empty!\n");
    }


    system(
"pause");
    
return 0;
}

posted on 2009-04-30 20:25 shongbee2 閱讀(6114) 評論(2)  編輯 收藏 引用 所屬分類: 數據結構和算法

評論

# re: 鏈表學習--雙向鏈表實現 2009-04-30 20:28 shongbee2

這里因為排版有問題,加上我技術很爛,所以圖很模糊,不要見怪啊。是書上的原圖。呵呵。。。  回復  更多評論   

# re: 鏈表學習--雙向鏈表實現 2013-04-16 15:20 蘇七七

覺得你對雙鏈表的理解上有問題。。。。@shongbee2
  回復  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美顶级少妇做爰| 久久爱www| 亚洲国产精品欧美一二99| 另类图片综合电影| 亚洲乱码国产乱码精品精98午夜 | 欧美激情精品久久久久久免费印度 | 中日韩美女免费视频网站在线观看| 一区二区三区久久精品| 国外成人在线| 一区二区福利| 亚洲国产精品免费| 中文在线不卡| 亚洲激情网站免费观看| 亚洲伊人久久综合| 亚洲美女中出| 久久久久久亚洲综合影院红桃| 亚洲一区二区av电影| 老司机午夜精品视频在线观看| 亚洲欧美自拍偷拍| 欧美激情视频在线免费观看 欧美视频免费一| 亚洲欧美变态国产另类| 欧美成人日韩| 美女视频网站黄色亚洲| 国产精品一香蕉国产线看观看| 亚洲国产一区在线| 国内一区二区三区在线视频| 中文久久精品| 99精品欧美一区二区蜜桃免费| 久久精品人人做人人爽| 欧美一区二区三区的| 欧美日韩亚洲高清| 欧美激情第10页| 国语自产精品视频在线看| 亚洲视频免费观看| 一区二区三区精密机械公司 | 99国产精品久久久久久久| 久久精品中文字幕免费mv| 欧美在线国产| 国产精品美女久久| 日韩视频精品在线| 一区二区三区免费在线观看| 欧美激情一区二区三级高清视频 | 国产综合自拍| 亚洲欧美国产制服动漫| 亚洲制服av| 国产精品爱啪在线线免费观看| 日韩视频免费观看高清在线视频| 亚洲精品乱码久久久久久按摩观| 久久精品噜噜噜成人av农村| 久久国产福利| 国产精品资源在线观看| 亚洲私人影院在线观看| 一区二区三区黄色| 国内揄拍国内精品少妇国语| 久久久91精品国产一区二区三区| 一本久久知道综合久久| 亚洲精品国产系列| 一区二区三区国产在线| 欧美日韩亚洲综合一区| 农夫在线精品视频免费观看| 欧美大尺度在线观看| 欧美噜噜久久久xxx| 国产精品狠色婷| 国产一区二区看久久| 亚洲电影在线看| 亚洲视频在线二区| 久久久亚洲午夜电影| 日韩亚洲精品在线| 久久九九99视频| 国产精品夜色7777狼人| 最新国产精品拍自在线播放| 亚洲欧美春色| 91久久国产精品91久久性色| 欧美一区中文字幕| 欧美日韩综合视频网址| 亚洲国产精品国自产拍av秋霞 | 香蕉久久一区二区不卡无毒影院| 久久综合色综合88| 国产精品一区二区你懂的| 一本色道久久综合狠狠躁篇怎么玩| 久久久在线视频| 久久精品国产亚洲一区二区| 国产午夜精品美女视频明星a级| 亚洲制服av| 亚洲性视频网址| 国产精品免费一区二区三区在线观看 | 亚洲精品日产精品乱码不卡| 久久亚洲一区二区三区四区| 亚洲在线观看视频网站| 亚洲欧洲偷拍精品| 久久综合五月| 亚洲精品欧洲| 一区二区日韩精品| 国产伦精品一区二区三区| 欧美在线www| 久久久久成人精品免费播放动漫| 精品福利免费观看| 91久久精品国产91久久| 欧美视频免费在线| 久久久久久久久岛国免费| 久久在线视频| 中文精品一区二区三区| 亚洲欧美国产高清va在线播| 黑丝一区二区三区| 亚洲高清中文字幕| 国产精品国产馆在线真实露脸| 久久久另类综合| 欧美精品成人一区二区在线观看| 亚洲影视中文字幕| 久热综合在线亚洲精品| 亚洲一区三区视频在线观看| 欧美一级艳片视频免费观看| 亚洲精品孕妇| 久久精品91久久久久久再现| 亚洲视频你懂的| 欧美va亚洲va香蕉在线| 午夜精品久久久久久久99黑人| 久久这里有精品视频| 羞羞视频在线观看欧美| 另类综合日韩欧美亚洲| 亚洲欧美国产日韩中文字幕| 蜜桃av噜噜一区| 久久精品噜噜噜成人av农村| 欧美日韩精品高清| 亚洲黑丝一区二区| 亚洲精品在线观| 欧美丰满高潮xxxx喷水动漫| 麻豆精品视频在线观看| 国语精品一区| 欧美一级片一区| 久久婷婷国产麻豆91天堂| 国产一区二区三区久久悠悠色av| 亚洲欧美成人一区二区在线电影| 午夜精品免费视频| 国产精品一区二区久久国产| 亚洲淫性视频| 久久久久九九九九| 午夜欧美不卡精品aaaaa| 欧美一区二区日韩一区二区| 国产婷婷精品| 久久综合久久综合这里只有精品| 蜜桃av综合| 99热在线精品观看| 欧美性猛交xxxx乱大交蜜桃| 亚洲在线一区二区三区| 久久国产88| 亚洲免费高清| 国产精品久久久久久久久久久久久久 | 欧美1区免费| 亚洲欧洲日本专区| 一区二区三区久久网| 欧美四级伦理在线| 9色精品在线| 欧美综合第一页| 雨宫琴音一区二区在线| 欧美日韩一区二区免费视频| 香港久久久电影| 欧美激情一区二区三级高清视频 | 免费在线欧美黄色| 亚洲午夜性刺激影院| 欧美激情视频免费观看| 欧美一级淫片aaaaaaa视频| 亚洲国产专区| 一区二区视频在线观看| 国产欧美一区二区色老头| 欧美1区视频| 蜜桃久久精品乱码一区二区| 亚洲综合好骚| 亚洲欧美日韩天堂一区二区| 亚洲国产精品久久久久婷婷老年| 久久九九精品99国产精品| 亚洲欧美久久| 亚洲无线观看| 亚洲午夜精品17c| aa亚洲婷婷| 一区二区三区www| 999在线观看精品免费不卡网站| 黄色成人av| 亚洲欧洲日韩在线| 一区二区三区欧美日韩| 国产精品一区二区欧美| 影音先锋欧美精品| 日韩手机在线导航| 亚洲免费伊人电影在线观看av| 一区二区三区毛片| 亚洲精品123区| 亚洲精品在线观看视频| 99国产精品| 欧美在线中文字幕| 美女视频网站黄色亚洲| 亚洲黄色成人网| 日韩午夜三级在线| 久久不射电影网| 欧美精品一区二| 国产伦精品一区二区三区照片91 | 在线观看精品视频| 欧美1区视频| 一区二区三区产品免费精品久久75 | 欧美激情一区二区三区| 亚洲日本欧美天堂|