728x90
#include <stdio.h>
#include <stdlib.h>
struct abc
{
int data;
struct abc *next;
};
void Ins(struct abc *s, int k)
{
struct abc *node=malloc(sizeof(struct abc));
node->next=s->next;
node->data=k;
s->next=node;
}
void Del(struct abc *s,int k)
{
struct abc *node=malloc(sizeof(struct abc));
struct abc *i=malloc(sizeof(struct abc));
for(i=s;i!=NULL;i=i->next)
{
if(i->next->data==k)
{
node=i->next;
i->next=i->next->next;
break;
}
}
free(node);
}
void Add(struct abc *s,int k)
{
struct abc *node=malloc(sizeof(struct abc));
struct abc *i=malloc(sizeof(struct abc));
for(i=s;i!=NULL;i=i->next)
{
if(i->next->next==NULL)
{
i->next->next=node;
break;
}
}
node->data=k;
node->next=NULL;
}
int main()
{
struct abc *start, *i;
int a,n;
start=malloc(sizeof(struct abc));
start->next=NULL;
while(1)
{
printf("1.삽입\n2.종료\n3.삭제\n4.추가\n번호:");
scanf("%d",&n);
if(n==2) return 0;
if(n==1)
{
printf("삽입할 자료:");
scanf("%d",&a);
Ins(start,a);
}
if(n==3)
{
printf("삭제할 자료:");
scanf("%d",&a);
Del(start,a);
}
if(n==4)
{
printf("추가할 자료:");
scanf("%d",&a);
Add(start,a);
}
i=start->next;
while(i!=NULL)
{
printf("%d\n",i->data);
i=i->next;
}
printf("\n");
}
return 0;
}
반응형
'전공 공부 > C' 카테고리의 다른 글
구조체(평균, 석차 , 막대 그래프) (0) | 2020.12.28 |
---|---|
파일 읽기(점수 평균 구하기) (0) | 2020.12.28 |
m/n 소수 x자리까지 구하기 (0) | 2020.12.28 |
숫자 맞추기 (0) | 2020.12.27 |
반복되는 수 (0) | 2020.12.27 |