我是靠谱客的博主 年轻白猫,最近开发中收集的这篇文章主要介绍对单链表的基本操作,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

准备工作(定义类型,定义存储结构)

#include<iostream>
using namespace std;
typedef int ElemType;
typedef bool Status;
#define OK true
#define ERROR false
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode, *LinkList;

取值:取第i个位置上的数据,这里参数使用引用原因是不用返回值,对传进来的参数直接进行修改

//取值:取第i个位置上的数据,这里参数使用引用原因是不用返回值,对传进来的参数直接进行修改
Status GetElem(LinkList L,int i,ElemType &e){
LinkList p = L->next;
int j=0;
while(p && j < (i-1)){
p = p->next;
j++;
}
e = p->data;
cout << "第"<<i<<"个位置上的数据是:"<<e<<endl;
return OK;
}

查找:按值查找,查找成功,返回节点地址值

//查找:按值查找,查找成功,返回节点地址值
LNode *LocateElem(LinkList L,int search){
LinkList p = L->next;
int i=0;
while(p && p->data != search){
p = p->next;
i++;
}
cout <<"查找数据"<<search<<"对应的"<< "index:"<<i << endl;
return p;
}

插入:将值为e的新节点插入到表的第i个节点上

//插入:将值为e的新节点插入到表的第i个节点上
Status ListInsert(LinkList &L, ElemType data,int index){
LinkList p,s;
s = L;
int i = 0;
while(s && i <(index -1)){
s=s->next;
i++;
}
if(!s||i>index-1) return ERROR;
p = new LNode;
p->data = data;
p->next = s->next;
s->next = p;
return OK;
}

删除:删除单链表的第i个节点

//删除:删除单链表的第i个节点
Status ListDelete(LinkList &L, int i){
LinkList p=L;
int j=0;
LinkList q;
while((p->next) && j<(i-1)){
p=p->next;
j++;
}
if(!(p->next)||(j>i-1)) return ERROR;
q = p->next;
p->next = q->next;
delete q;
return OK;
}

建单链表:创建无头单链表,输入数据


//创建单链表:创建无头单链表,输入数据
void CreateList_H(LinkList &L, int n){
L = new LNode;
L->next = NULL;
LinkList p;
for(int i=0;i<n;i++){
p = new LNode;
//cout <<"please input the data of node:";
p->data = (i+1);
//cin >> p->data;
p->next = L->next;
L->next = p;
}
}

输出数据

//输出数据
void showdata(LinkList L){
L=L->next;
while(L){
cout<<L->data<<endl;
L=L->next;
}
}

主函数

int main(){
LinkList L;
CreateList_H(L,5);
showdata(L);
cout<<"after insert:"<<endl;
ListInsert(L,6,3);
showdata(L);
cout << "数据6的地址:"<<LocateElem(L,5) << endl;
int e;
GetElem(L,3,e);
cout<<"删除第3个位置得数据"<<endl;
ListDelete(L,3);
showdata(L);
return 0;
}

最后

以上就是年轻白猫为你收集整理的对单链表的基本操作的全部内容,希望文章能够帮你解决对单链表的基本操作所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部