首页 > 代码库 > C++实现数据结构中的单链表
C++实现数据结构中的单链表
#include<iostream> using namespace std; //定义一个节点类 class Node{ public: int data; Node *next; Node():next(NULL){} Node(const int &value,Node *next_=NULL):data(value),next(next_){} }; //定义一个单单链表 class Linklist{ private: Node *head; public: Linklist():head(new Node){} //判断链表是否为空 bool is_empty()const { if(head->next==NULL) return true; return false; } //判断链表的长度 int get_length() { int length=0; Node *p=head->next; while(!p) { ++length; p=p->next; } return length; } //返回第i=个元素的值 Node *get_value(int i) { if(i<=0||i>get_length()) { cout<<"error"<<endl; return NULL; } else { Node *p=head->next; int j=1; while(p&&j<i) { p=p->next; ++j; } return p; } } //在第i个位置之前插入相应元素的值 bool insert_pos(int value,int i) { if(i<=0||i>get_length()) { cout<<"无法插入相应的元素"<<endl; return false; } else { int j=1; Node *p=head; while(p&&j<i) { p=p->next; ++j; } Node *newnode=new Node(value); newnode->next=p->next; p->next=newnode; return true; } } //下面顶一个采用尾插法插值的函数 void insert(int value) { Node *p=head; Node *q=p; while(p) { q=p; p=p->next; } Node *newnode=new Node(value); q->next=newnode; } void display() { if(head->next==NULL) return ; Node *p=head->next; while(p) { cout<<p->data<<'\t'; p=p->next; } } //定义一个删除某个节点的函数 void delete_node(int value) { Node *pos_node=NULL; Node *q=head; Node *p=head->next; while(p) { if(p->data=http://www.mamicode.com/=value)>C++实现数据结构中的单链表
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。