bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

java和c++的鏈表操作-創新互聯

java和c++鏈表的表示以及基本操作 c++單鏈表的表示
struct Node{
    int value;  //表示這個節點的值
    Node *next; //表示下一個節點的指針
}a[200000], *head, *tail;

//定義了20萬個節點,頭指針和尾指針;
int index = 0;//用來表示當前節點用到了哪里
c++單鏈表的添加
void addFirst(int x){//如果頭指針為空,也就是上面的head為空,則調用這個方法
	a[index].value = x;
    head = &a[index];  //因為head為指針,所以要用地址符號。
    tail = &a[index];
    index++;
}

void addToHead(int x){ //添加在最前面
    a[index].value = x;
    a[index].next = head; //當前節點的下一個節點修改為頭節點
    head = &a[index]; //頭節點修改為當前節點
    index++;
}

void addToTail(int x){//添加在最后面
    a[index].value = x;
    tail->next = &a[index]; //尾巴的下一個為a[index],因為tail是指針,所以要用箭頭
    tail = &a[index];       //修改尾巴為當前節點;
    index++;
    
}

void add(int x, Node node){ //在node節點后面添加一個節點x
    a[index].value = x;
    a[index].next = node.next; //先增加一條線,也就是先讓當前節點指向node的下一個節點
    node.next = &a[index];     //在讓node的下一個為當前添加節點。
}
c++單鏈表的刪除
void delete(Node *node){ //刪除node節點,參數為Node node 也就是調用方法時要用delete(a[i]), 如果為*node,就是delete(&a[i]),此處為*node
    if(head == node){ //如果為頭節點,就不用管之前的
        head = head->next;
    }
    else{
        //先找到刪除節點的前一個節點, 可以在結構體里面定義一個pre指針,這樣可以O(1)刪除
        //接下來的方法是遍歷方法找到該節點的前一個,復雜度為O(n);
        Node *h = head;
        while(h != null && h ->next != node){
            h = h ->next
        }
        h->next = h->next->next;//直接讓當前節點的下一個,為當前節點下一個的下一個;
    }
}
c++循環單鏈表

循環單鏈表就是讓尾指針指向頭指針,每次執行玩操作后,讓tail的下一個為head

讓客戶滿意是我們工作的目標,不斷超越客戶的期望值來自于我們對這個行業的熱愛。我們立志把好的技術通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領域值得信任、有價值的長期合作伙伴,公司提供的服務項目有:國際域名空間、網站空間、營銷軟件、網站建設、海城網站維護、網站推廣。

循環單鏈表的好處是從任何一個節點出發都可以遍歷整個鏈表

c++雙鏈表

c++雙鏈表就是可以快速的找到當前節點的前一個元素,定義結構體時,添加一個pre指針

添加或者刪除時要注意先連線,在斷線

list為stl中的鏈表,可以參考文檔來學習

如果想看雙鏈表具體的執行,可以私信我,我來更新

java單鏈表的定義
class Node{//如果是做題用,可以把這個類定義為靜態類
    public int value;
    public Node next;
    public Node(int value){this.value = value; 
    }
}
//定義頭和尾
Node head = null;
Node tail = null;
java單鏈表的添加
public void addFirst(int x){//如果頭為空,說明當前鏈表為空,也就是第一次添加數據到鏈表
    Node cur = new Node(x); //定義當前節點
    head = cur;
    tail = cur; //添加完后,頭和尾都是這個節點
}

public void addTail(int x){//添加到最后一個
    Node cur = new Node(x);
    Tail.next = cur;
    Tail = cur;
}

public void addHead(int x){Node cur = new Node(x);
    cur.next = head;
    head = cur;
}
public void add(int x, Node node){Node cur = new Node(x);
    cur.next = node.next;
    node.next = cur;
}
java單鏈表的刪除
public deleteHead(){//刪除第一個
 	head = head.next;   
}
public delete(Node node){//同c++,得先找到它的上一個節點, 如果定義的不是雙鏈表,則這個操作為O(n);
    Node h = head;
    while(h.next != node){h = h.next;
    }
    h.next = h.next.next; //也可為h.next = node.next;
}
java循環單鏈表

每次執行完添加或者操作之后,讓尾指針的next = 頭指針, tail.next = head

java雙鏈表

雙鏈表的好處就是可以更快的找到當前節點的前一個節點,表示的話多了一個pre指針(java可能不叫指針)

添加或者刪除時要注意先連線,在斷線

LinkedList為Java jdk中提供的鏈表,可以參考文檔來學習

如果想看雙鏈表具體的執行,可以私信我,我來更新

你是否還在尋找穩定的海外服務器提供商?創新互聯www.cdcxhl.cn海外機房具備T級流量清洗系統配攻擊溯源,準確流量調度確保服務器高可用性,企業級服務器適合批量采購,新人活動首月15元起,快前往官網查看詳情吧

網頁題目:java和c++的鏈表操作-創新互聯
文章源于:http://vcdvsql.cn/article6/cseeig.html

成都網站建設公司_創新互聯,為您提供網站策劃、搜索引擎優化網站制作、面包屑導航、動態網站、服務器托管

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設