⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 链表.cpp

📁 是一个数据处理结构中关于链表的建立 几基本操作的程序
💻 CPP
字号:
#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int ElemType;
typedef  int status;
typedef struct LNode{
	ElemType data;
	struct LNode *next;
}LNode,*LinkList;
status Creat(LinkList &L,int n){
	LinkList p,q;
	int i;
	L=(LinkList)malloc(sizeof(LNode));
	L->next=NULL;q=L;
	for(i=0;i<n;i++){
		p=(LinkList)malloc(sizeof(LNode));
		cout<<"请输入一个整数";
		cin>>p->data;
		q->next=p;
		q=p;}
	q->next=NULL;
	return OK;
}
status GetElem(LinkList L,int i,ElemType&e){
	int j;
	LinkList p;
	p=L->next;
	j=1;
	while(p&&j<i){
		p=p->next;j++;}
	e=p->data;
	return OK;
}
status Delete(LinkList &L,int i,ElemType &e){
	LinkList p,q;
	int j;
    p=L;j=0;
	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;
	e=q->data;free(q);
	return OK;

}
status Insert(LinkList &L,int i,ElemType e){
	LinkList p,s;
	int j;
	p=L;j=0;
	while(p&&j<i-1){
		p=p->next;++j;}
	if(!p||j>i-1) return ERROR;
	s=(LinkList)malloc(sizeof(LNode));
	s->data=e;s->next=p->next;
	p->next=s;
	return OK;
}
printf(LinkList L){
	LinkList p;
	p=L->next;
	while(p!=NULL){
		cout<<p->data<<" ";
		p=p->next;
	}
	cout<<endl;
}
main(){

LinkList L1;
char x;
int n,i;
ElemType e;
cout<<"请输入你的操作"<<endl;
cout<<"a插入 b查找 c删除 退出q"<<endl;
cout<<"输入你要建立个数n"<<endl;
cin>>n;
Creat(L1,n);
printf(L1);
cout<<endl;
while((x=getchar())!='q')
{
	switch(x){
	case'a':cout<<"输入你要插入的位置第i个之前和值e"<<endl;cin>>i>>e;Insert(L1,i,e);cout<<"此链表现在为";
		printf(L1);break;
	case'b':cout<<"输入你查找的元素位置第i个"<<endl;cin>>i;GetElem(L1,i,e);cout<<"这个数是:";cout<<e<<endl;
		break;
    case'c':cout<<"输入你要删除的元素位置第i个"<<endl;cin>>i;Delete(L1,i,e);cout<<"此链表现在为";
		printf(L1);break;
	}
}
}
		





⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -