链表的C++代码

单链表

结点定义为一个结构体

struct LinkNode{

      int  data;

     LinkNode *  next;

};

然后定义一个链表类

class List{

private:LinkNode* first;

public:

        list(){first=null;}

         bool insert(int i,int data);

         bool remove(int position);

         LinkNode* getLinkNode(int  data);


}

bool List::insert(int i,int data){

   
    if(first==null||i==0){
        LinkNode* newNode=new LinkNode(data);
        if(newNode==NULL){
        cerr<<"distributed error\n";
        return false;
        }
        newNode->next=NULL;
        first=newNode;
        return true;
       
    }else{
    LinkNode* currentNode=first;
    for(int k=0;k<i;k++){
        if(currentNode==NULL)break;
        currentNode=currentNode->next;
    }
    if(currentNode==NULL){
        cerr<<"insert error\n";
        return false;
    }
   
    newNode->next=currentNode-next;
    currntNode->next=newNode;
   
    return true;
   
    }

}

bool List::remove(int position){
 
  LinkNode* tempNode=first;
    for(int k=0;k<position-1;k++){
        if(tempNode->next==NULL){
        cerr<<"outOfBound\n";
        return false;
        }
        tempNode=tempNode->next;
    }
    LinkNode* delNode=tempNode->next;
    tempNode->next=(tempNode->next)->next;
    delete delNode;
   
    return true;
   
}


LinkNode* List::getLinkNode(int data){
    LinkNode* currentNode=first;
    while(currentNode!=NULL){
        if(currentNode->data==data)
            return currentNode;
        currentNode=currentNode->next;
    }
   
    return NULL;
}




}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值