#include
#include
typedef struct Node{
int value;
struct Node *next;
}datatype;
void InsertNode(datatype **head,int value){
datatype *previous; //前一个
datatype *current; //当前的
datatype *new;
current = *head;
previous=NULL;
while(current != NULL && current->valuenext;
}
new=(datatype *)malloc(sizeof(datatype));
new->value=value;
new->next=current;
if(previous==NULL){
*head=new;
}
else{
previous->next=new;
}
}
void Delete(datatype **head,int value){
datatype *previous;
datatype *current;
current=*head;
previous=NULL;
while(current != NULL&& current ->value != value){
previous = current;
current = current ->next;
}
if(current == NULL){
printf("找不到该节点\n");
return;
}
else{
if(previous == NULL){
*head=current->next;
}
else{
previous->next = current->next;
}
free(current);
}
}
void printNode(datatype *head){
datatype *current;
current = head;
while(current != NULL){
printf("%d ",current->value);
current=current->next;
}
putchar('\n');
}
int main(){
datatype *head=NULL;
int input;
while(1){
printf("请输入一个整数(输入-1结束):");
scanf("%d",&input);
if(input==-1){
break;
}
InsertNode(&head,input);
printNode(head);
}
printf("开始删除链表中的整数:\n");
while(1){
printf("请输入要删除的整数(输入-1结束):");
scanf("%d",&input);
if(input==-1){
break;
}
Delete(&head,input);
printNode(head);
}
return 0;
}
请输入一个整数(输入-1结束):5
5
请输入一个整数(输入-1结束):4
4 5
请输入一个整数(输入-1结束):1
1 4 5
请输入一个整数(输入-1结束):3
1 3 4 5
请输入一个整数(输入-1结束):4
1 3 4 4 5
请输入一个整数(输入-1结束):7
3 4 4 5 7
请输入一个整数(输入-1结束):-1
开始删除链表中的整数:
请输入要删除的整数(输入-1结束):4
1 3 4 5 7
请输入要删除的整数(输入-1结束):4
1 3 5 7
请输入要删除的整数(输入-1结束):5
1 3 7
请输入要删除的整数(输入-1结束):5
找不到该节点
1 3 7
请输入要删除的整数(输入-1结束):-1
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)