#include <iostream>
using namespace std;
struct Node{
int Data;
Node *Next;
};
struct List{
Node *head;
};
List MakeEmpty(){
List list;
list.head=NULL;
return list;
}
int Length(List *list){
Node *p;
int i;
for(p=list->head;p;p=p->Next){
++i;
}
return i;
}
Node *FindKth(int K,List *list){
Node *p;
int i=1;
for(p=list->head;p&&i<K;p=p->Next){
++i;
}
if(i==K){
return p;
}else{
return NULL;
}
}
Node *Find(int X,List *list){
Node *p;
for(p=list->head;p;p=p->Next){
if(p->Data==X){
return p;
}
}
return NULL;
}
void Insert(int X,int i,List *list){
if(i<1||i>Length(list)+1){
cout<<"位置不合法";
}else{
Node *new_node =(Node*)malloc(sizeof(Node));
new_node->Data=X;
new_node->Next=NULL;
Node *p=list->head;
int j=1;
if(i==1){
new_node->Next=list->head;
list->head=new_node;
}else{
while(j<i-1){
p=p->Next;
++j;
}
new_node->Next=p->Next;
p->Next=new_node;
}
}
}
void Delete(int i,List *list){
int j=1;
Node *p=list->head;
if(i==1){
list->head=list->head->Next;
}else{
while(j<i-1){
p=p->Next;
++j;
}
p->Next=p->Next->Next;
}
}
int main()
{
List list=MakeEmpty();
int num;
int i=1;
while(cin>>num){
Insert(num,i,&list);
++i;
}
return 0;
}
链式结构线性表
最新推荐文章于 2022-07-18 15:30:51 发布