#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
typedef struct Node{
int data;
struct Node * next;
}Node;
Node * head=NULL;
Node * current=NULL;
Node * before=NULL;
//해당 데이터를 갖는 노드를 1개 생 성
void newNode(int data){
Node * nNode = (Node*)malloc(sizeof(Node));
nNode->data = data;
nNode->next = NULL;
if(head == NULL){
head=nNode;
current=nNode;
}
else{
current->next = nNode;
current = current->next;
}
}
//해당 데이터를 갖는 노드 1개를 삭 제
void removeNode(int data){
if(head->data==data){
before=head;
head=head->next;
free(before);
before=NULL;
return;
}
current=head;
while(current!=NULL){
if(current->next!=NULL&¤t->next->data==data){
before=current->next;
current->next=before->next;
free(before);
before=NULL;
while(current->next!=NULL){
current=current->next;
}
return;
}else{
current=current->next;
}
}
}
//모든 노드를 출력
void display(){
current=head;
while(current->next!=NULL){
printf("%d\n",current->data);
current=current->next;
}
printf("%d\n",current->data);
}
void main(){
int a,b;
while(1){
printf("1.입력/ 2.제거/ 3.출력");
scanf("%d",&a);
if(a==1){
printf("입력 값 : ");
scanf("%d",&b);
newNode(b);
}else if(a==2){
printf("제거 값 : ");
scanf("%d",&b);
removeNode(b);
}else if(a==3){
display();
}else{
printf("다시 입력해주세요...\n");
}
}
}
큐형태의 단순열결리스트에 scanf를 입력하여 노드를 추가,삭제,출력 기능을 넣은 코드 입니다.