#include<bits/stdc++.h>
using namespace std;
#define OK 1
#define ERROR 0
typedef int Status;
typedef int ElemType;
typedef struct LNode{
ElemType data;
struct LNode *next;
}LNode,*LinkList;
Status InitList(LinkList &L){
L = new LNode;
L->next = NULL;
return OK;
}
Status EnList(LinkList &L,int i,ElemType e){
LinkList p ;
int j=0;
p=L;
while(p&&j<i-1) {
p=p->next;
j++;
}
if(!p||j>=i) return ERROR;
LinkList s = new LNode;
s->data = e;
s->next=p->next;
p->next=s;
return OK;
}
Status DeList (LinkList &L,int i,ElemType &e){
LinkList p;
p=L;
int j=0;
while( (p->next) && j<i-1) {
p=p->next;
j++;
}
if(!(p->next)||j>i-1) return ERROR;
LinkList q ;
q=p->next;
e=q->data;
p->next=q->next;
delete q;
return OK;
}
LinkList LocateElem(LinkList L,ElemType e){
LinkList p = L->next;
while(p&&p->data!=e) {
p=p->next;
}
return p;
}//查找
void TraverseList(LinkList L){
if(L==NULL) {
return;
}
else{
cout<<L->data<<" ";
TraverseList(L->next);
}
}
int main(){
LinkList L;
InitList(L);
int i;
for(i=1;i<=5;i++) {
EnList(L,i,i);
}
TraverseList(L->next);
cout<<endl;
ElemType e;
DeList(L,1,e);
cout<<e<<" ";
cout<<endl;
TraverseList(L->next);
}
数据结构:单链表
最新推荐文章于 2025-05-04 20:55:54 发布