一、链表的基础操作
1.创建链表
#include<stdio.h>
#include <stdlib.h>
struct node{
node *nextt;
int data;
};
node *create(int Array[]) {
node *head,pre,p;
head=new node;
head->next=NULL:
pre=head;
for(int i=0;i<5;i++)
{
p=new node;
p->data=Array[i];
p->next=NULL;
pre->next=p;
pre=p;
}
return head;
}
int main()
{
int Array[5]={5,1 ,2,6,3};
node *L=create(Array);
while(L->next!=NULL)
{
printf("%d ",L->data);
L=L->next;
}
return 0;
}
2.查找元素
int search(int x,node head)
{
int count=0;
node * now=new node;
now=head->next;
while(now!=NULL)
{
if(now->data==x)
{
count++;
}
now=now->next;
}
return count;
}
3.插入元素
void insert(node* head,int pox,int x)
{
node *p=new node;
for(int i=0;i<pox-1;i++)
{
p=p->next;
}
node *q=new node;
q->data=x;
q->next=p->next;
p->next=q;
}
4.删除元素
void delete(node *head,int x)
{
node *p=new node;
node *pre=new node;
pre=head;
p=head->next;
while(p!=NULL)
{
if(p->data==x)
{
pre->next=p->next;
delete(p);
p=pre->next;
}
else{
pre=p;
p=p->next;
}
}
}