1、创建链表
2、查找(按位置、按节点值)
3、插入(按顺序、按位置)
4、删除(按位置、按结点值)
#include<bits/stdc++.h>
typedef struct node{
int data;
struct node * next;
}NODE;
void create(){
NODE *h,*s,*p;
h=(NODE*)malloc(sizeof(NODE));
p=h;
int x;
int cycle=1;
while(cycle){
printf("请输入一个数: \n");
scanf("%d",
if(x){
s=(NODE*)malloc(sizeof(NODE));
s->data=x;
s->next=p->next;
p->next=s;
p=s;
}else{
cycle=0;
}
}
}
NODE * search_position(NODE * head,int i){
NODE *p=head;
int k=0;
while(k<i&&p->next!=NULL){
p=p->next;k++;
}
if(k==i) return p;
else return NULL;
}
NODE * search_value(NODE * head,int x){
NODE *p=head;
while(p->next&&p->next->data!=x){
p=p->next;
}
if(p->next) return p;
else return NULL;
}
void insert_order(NODE * head,int x){
NODE *p,*q;
p=head;
while(p->next&&p->next->data<x){
p=p->next;
}
q=(NODE*)malloc(sizeof(NODE));
q->data=x;
q->next=p->next;
p->next=q;
}
void insert_position(NODE * head,int i,int x){
NODE * p,*q;
p=head;
int k=0;
while(i<k&&p->next){
p=p->next;
k++;
}
if(i==k){
q=(NODE*)malloc(sizeof(NODE));
q->data=x;
q->next=p->next;
p->next=q;
}else{
printf("插入失败");
}
}
void del_position(NODE*head,int i){
NODE *p,*q;
p=head;
int k=0;
while(p->next&&i<k){
p=p->next;
k++;
}
if(i==k){
q=p->next;
p->next=q->next;
free(q);
}else{
printf("删除失败");
}
}
void del_value(NODE *head,int x){
NODE *p,*q;p=head;
while(p->next&&p->next->data!=x){
p=p->next;
}
if(p->next){
q=p->next;
p->next=q->next;
free(q);
}else{
printf("删除失败");
}
}
int main(){
return 0;
}