最近在刷《剑指offer》的题目,才发现自己许多数据结构的知识都忘记了,正在恶补中。这篇博客主要讲述了用c++实现单链表的一些基本操作,主要实现了包括单链表的创建,打印链表,获取链表长度,在链表的第i个节点处插入值为e的节点,删除第i个节点,获取第i个节点的数据,在链表中搜索数据的功能。不多说,直接上代码。
#include "stdafx.h"
#include"stdio.h"
#include<iostream>
using namespace std;
/*
功能:实现对单链表的一些基本操作
*/
struct node{
int value;
node* next;
};
//链表类
class LinkList{
private:
node* head;
public:
LinkList();//构造函数,在创建对象时自动调用
void CreateLinkList(int n);//创建链表
void PrintLinkList();//打印链表
int Length();//获取链表长度
void Insert(int i,int e);//在链表的第i个节点处插入值为e的节点
void Delete(int i);//删除第i个节点
int GetValue(int i);//获取第i个节点的数据
bool SearchValue(int target);//在链表中搜索target
};
//构造函数
LinkList::LinkList(){
//初始化头结点
head=new node;
head->next=NULL;
}
//创建链表
//输入参数;n为节点数
void LinkList::CreateLinkList(int n) {
node* temp;
node* p;
p=head;
cout<<"创建链表:"<<endl;
for(int i=0;i<n;i++){
cout<<"请输入第"<<i+1<<"个节点的整数值"<<endl;
temp=new node;
cin>>temp->value;
/*如果输