簡體   English   中英

鏈表實現

[英]linked list implementation

這是簡單的鏈表代碼:

#include <iostream>
using namespace std;
class link
{
    public:
    int data;
    double ddata;
    link *next;
    link(int id,double dd){
        data=id;
        ddata=dd;
    }

    void diplay(){
        cout<<data<<" ";
        cout<<data<<" ";

    }
};

class linkedlist{
    private :
        link *first;
    public:
        linkedlist(){
            first=NULL;
        }

        bool empthy(){
            return (first==NULL);
        }

        void insertfirst(int id,double dd){
            link *newlink=new link(id,dd);
            newlink->next=first;
            first=newlink;
        }

        link* deletefirst(){
            link *temp=first;
            first=first->next;
            return temp;
        }

        void display(){
            cout<<" (list ( first -> last ) )   ";
            link *current=first;
            while(current!=NULL){
                current->diplay();
                current=current->next;
            }
            cout<<endl;
        }
};

int main(){
    linkedlist *ll=new linkedlist();
    ll->insertfirst(22,2.99);
    ll->insertfirst(34,3.99);
    ll->insertfirst(50,2.34);
    ll->insertfirst(88,1.23);
    ll->display();
    return 0;
}

但它給了我意想不到的結果。 它打印88 88 50 50 34 34 22 22而不是(88,1.23)(50,2.34)(34,3.99)(22,2.99)

您要打印兩次data

        cout<<data<<" ";
        cout<<data<<" ";

想必你想打印出dataddata

        cout<<data<<" ";
        cout<<ddata<<" ";

如果數據成員具有更多不同的名稱,則可能更容易發現錯誤。

void diplay(){

             cout<<data<<" ";
             cout<<ddata<<" ";

             }

用此代碼替換display功能。 (除了打印dataddata你打印數據兩次)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM