亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
  • 數組前移,for循環從小到大賦值

    for(int k=i+1;k<m_length;k++)

    {

    ????m_plist[k-1]=m_plist[k];

    }

    查看全部
  • 數組后移操作 倒序循環賦值

    for(int k=m_length-1;k>=i;k--)

    {????


    }

    查看全部
  • 用坐標輸出
    查看全部
  • length是數據成員個數
    查看全部
  • 線性表刪除
    查看全部
  • 結點要從堆中申請內存,不能從棧中申請
    查看全部
  • 數據結構—鏈表
    查看全部
    0 采集 收起 來源:鏈表算法說明

    2019-09-26

  • 數據結構—順序表
    查看全部
  • 明天繼續
    查看全部
  • 鏈表的清空函數 ClearList() 的解釋:

    將頭結點m_pList后的所有節點刪除,并將頭結點m_pList的對象指針next指針置為NULL。

    void?list::ClearList()
    {
    ????Node?*currentNode?=?m_pList->next;
    ????while(currentNode?!=?NULL)
    ????{
    ?????Node?*temp?=?currentNode->next;
    ?????delete?currentNode;
    ?????currentNode?=?temp;
    ????}
    ????m_pList->next?=?NULL;
    }

    m_pList并沒有被刪除,其數據仍然為零( m_pList->data = 0 ),只是將其的next指針置為NULL( m_pList->next = NULL )。

    另外,此處?while(currentNode != NULL) 只是判斷節點是否為空,并不是判斷節點的對象指針。

    原因是:

    m_pList?是一個Node類型的對象指針,則其包含兩個數據成員,一個是(i nt data ),另外一個是( Node *next )。

    其數據成員*next同時也是一個Node類型的對象,可以指向下一個節點(通過 Node *currentNode = m_pList->next? 來將其下一個節點賦值給 currentNode?)。

    m_pList?只作為頭結點,其數據成員(?m_pList->data?)不放元素,沒有任何意義;其對象指針成員(?m_pList->next?) 只放鏈表第一個結點的地址。

    m_pList?雖然是一個頭結點,但不算在鏈表中,此時 m_iLength = 0?!居?-3 鏈表編碼實戰(一)3:55處可知】

    查看全部
  • 前驅:指定元素的前一個元素

    后繼:指定元素的后一個元素


    查看全部
  • 線性表:

    1 順序表(數組):訪問速度快、搜索能力強

    2 鏈表:靜態鏈表、單鏈表、循環鏈表、雙向鏈表

    查看全部
    0 采集 收起 來源:課程概述

    2019-07-15

  • 線性表:n個數據元素的 有限 序列

    查看全部
    0 采集 收起 來源:課程概述

    2019-07-15


  • /**
    ?*?單鏈表
    ?*/
    public?class?LinkedList?{
    ????private?Node?first;//頭結點
    ????private?int?length;//鏈表長度
    
    ????public?LinkedList()?{
    ????????first?=?new?Node(-1,?null);
    ????????length?=?0;
    ????}
    
    ????private?static?class?Node?{
    ????????int?data;?//數據域
    ????????Node?next;?//指針域
    
    ????????Node(int?data,?Node?next)?{
    ????????????this.data?=?data;
    ????????????this.next?=?next;
    ????????}
    
    ????????void?showNode()?{
    ????????????System.out.println(this.data?+?"");
    ????????}
    ????}
    
    ????public?boolean?isEmpty()?{
    ????????return?length?==?0;
    ????}
    
    ????public?int?getLength()?{
    ????????return?length;
    ????}
    
    
    ????//清空鏈表
    ????public?void?clearList()?{
    ????????Node?next?=?first.next;
    ????????while?(next?!=?null)?{
    ????????????Node?temp?=?next.next;
    ????????????next.next?=?null;
    ????????????next?=?temp;
    ????????}
    ????????first.next?=?null;
    ????????length?=?0;
    ????}
    
    ????//在頭結點后邊插入
    ????public?void?insertHead(int?elem)?{
    ????????Node?next?=?first.next;
    ????????first.next?=?new?Node(elem,?next);
    ????????length++;
    ????}
    
    ????//在尾結點后插入
    ????public?void?insertTail(int?elem)?{
    ????????//尋找尾節點
    ????????Node?curNode?=?first;
    ????????while?(curNode.next?!=?null)?{
    ????????????curNode?=?curNode.next;
    ????????}
    ????????curNode.next?=?new?Node(elem,?null);
    ????????length++;
    ????}
    
    ????/**
    ?????*?在index位置插入
    ?????*
    ?????*?@param?index
    ?????*?@param?elem
    ?????*/
    ????public?void?insert(int?index,?int?elem)?{
    ????????if?(index?<?0?||?index?>?length)?{
    ????????????throw?new?IndexOutOfBoundsException("index?不是鏈表的正確位置");
    ????????}
    
    ????????Node?curNode?=?first;
    ????????//找到插入位置index的前一個位置
    ????????for?(int?i?=?0;?i?<?index;?i++)?{
    ????????????curNode?=?curNode.next;
    ????????}
    ????????Node?temp?=?curNode.next;
    ????????curNode.next?=?new?Node(elem,?temp);
    ????????length++;
    ????}
    
    
    ????/**
    ?????*?刪除index位置的元素
    ?????*
    ?????*?@param?index
    ?????*?@return
    ?????*/
    ????public?int?delete(int?index)?{
    ????????if?(index?<?0?||?index?>=?length)?{
    ????????????throw?new?IndexOutOfBoundsException("index?不是鏈表的正確位置");
    ????????}
    
    ????????Node?curNode?=?first;
    ????????//找到刪除位置index的前一個位置的結點
    ????????for?(int?i?=?0;?i?<?index;?i++)?{
    ????????????curNode?=?curNode.next;
    ????????}
    ????????Node?rmNode?=?curNode.next;
    ????????curNode.next?=?rmNode.next;
    ????????rmNode.next?=?null;
    ????????length--;
    ????????return?rmNode.data;
    ????}
    
    
    ????public?int?getElem(int?index)?{
    ????????if?(index?<?0?||?index?>=?length)?{
    ????????????throw?new?IndexOutOfBoundsException("index?不是鏈表的正確位置");
    ????????}
    
    ????????Node?curNode?=?first;
    ????????//find
    ????????for?(int?i?=?0;?i?<=?index;?i++)?{
    ????????????curNode?=?curNode.next;
    ????????}
    ????????return?curNode.data;
    ????}
    
    ????public?int?locateElem(int?elem)?{
    ????????Node?curNode?=?first;
    ????????for?(int?i?=?0;?i?<?length;?i++)?{
    ????????????if?(curNode.next.data?==?elem){
    ????????????????return?i;
    ????????????}
    ????????????curNode?=?curNode.next;
    ????????}
    ????????return?-1;
    ????}
    
    ????//尋找一個元素的前驅
    ????public?int?getPriorElem(int?elem){
    ????????Node?curNode?=?first;
    ????????Node?tempNode;
    ????????while?(curNode.next?!=?null){
    ????????????tempNode?=?curNode;
    ????????????curNode?=?curNode.next;
    ????????????if?(tempNode?!=?first?&&?curNode.data?==?elem){
    ????????????????return?tempNode.data;
    ????????????}
    ????????}
    ????????return?-1;
    ????}
    
    ????//尋找一個元素的后繼
    ????public?int?getNextElem(int?elem){
    ????????Node?curNode?=?first;
    ????????while?(curNode.next?!=?null){
    ????????????curNode?=?curNode.next;
    ????????????if?(curNode.data?==?elem?&&?curNode.next?!=?null){
    ????????????????return?curNode.next.data;
    ????????????}
    ????????}
    ????????return?-1;
    ????}
    
    
    ????public?void?listTraverse()?{
    ????????Node?node?=?first;
    ????????for?(int?i?=?0;?i?<?length;?i++)?{
    ????????????node.next.showNode();
    ????????????node?=?node.next;
    ????????}
    ????}
    
    }


    查看全部
  • 單鏈表的構成

    查看全部
    0 采集 收起 來源:鏈表算法說明

    2019-05-15

舉報

0/150
提交
取消
課程須知
"本課程是數據結構初級課程 1、熟練掌握C++語言基礎語法"
老師告訴你能學到什么?
1、順序表的工作原理 2、順序表的實現方法及編碼技巧 3、鏈表的工作原理 4、鏈表的實現方法及編碼技巧 5、通訊錄的實現原理及編碼技巧

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!