#include <iostream>
#include <cstdio>
using namespace std;
struct node{
int data;
node* next;
};
node* create(int *a){
node* p,*pre,*head;
head =new node;
head->next=NULL;
pre=head;
for(int i=0;i<5;i++){
p = new node;
p->data=a[i];
p->next=NULL;
pre->next=p;
pre=p;
}
return head;
}
int findpos(node* l,int x){
int ans=-1;
int cnt=0;
while(l){
if(l->data==x) {
ans=cnt;
break;
}
l=l->next;
cnt++;
}
return ans;
}
void insertn(node* l,int pos ,int num){
//find pre node;
node* p=l;
for(int i=0;i<pos-1;i++){
p=p->next;
}
node* q=new node;
q->data=num;
q->next=p->next;
p->next=q;
}
void deleten(node *l,int num){
node* p=l->next;
node* pre=l;
while(p){
if(p->data==num){
pre->next=p->next;break;
}else{
pre=p;
p=p->next;
}
}
}
int main()
{
int Array[5]={5,3,6,1,2};
node* L = create(Array);
L=L->next;
// 返会节点的个数;
// int cnt=0;
// while(L){
// L=L->next;
// cnt++;
// }
// printf("%d",cnt);'
int pos = findpos(L,2);
// printf("%d",pos);
int num=100;
insertn(L,2,num);
deleten(L,100);
while(L){
printf("%d ",L->data);
L=L->next;
}
return 0;
#include <cstdio>
using namespace std;
struct node{
int data;
node* next;
};
node* create(int *a){
node* p,*pre,*head;
head =new node;
head->next=NULL;
pre=head;
for(int i=0;i<5;i++){
p = new node;
p->data=a[i];
p->next=NULL;
pre->next=p;
pre=p;
}
return head;
}
int findpos(node* l,int x){
int ans=-1;
int cnt=0;
while(l){
if(l->data==x) {
ans=cnt;
break;
}
l=l->next;
cnt++;
}
return ans;
}
void insertn(node* l,int pos ,int num){
//find pre node;
node* p=l;
for(int i=0;i<pos-1;i++){
p=p->next;
}
node* q=new node;
q->data=num;
q->next=p->next;
p->next=q;
}
void deleten(node *l,int num){
node* p=l->next;
node* pre=l;
while(p){
if(p->data==num){
pre->next=p->next;break;
}else{
pre=p;
p=p->next;
}
}
}
int main()
{
int Array[5]={5,3,6,1,2};
node* L = create(Array);
L=L->next;
// 返会节点的个数;
// int cnt=0;
// while(L){
// L=L->next;
// cnt++;
// }
// printf("%d",cnt);'
int pos = findpos(L,2);
// printf("%d",pos);
int num=100;
insertn(L,2,num);
deleten(L,100);
while(L){
printf("%d ",L->data);
L=L->next;
}
return 0;
}
//链表的删除,和插入一样,需要确定位置
//不过,知道这个位置,需要知道前面一个的位置.