싱글리스트... 도와주세요.
새길
안녕하세요 ㅠㅠ . cur -- newnode -- cur-next 이러케 삽입하려고 하는데 잘 안되요.. ㅠㅠ 질문 내용 :
#include stdio.h
#include stdlib.h
#include conio.h
typedef struct node
{
int key;
struct node* next;
}NODE;
NODE* start = NULL;
void insert(void);
void print(void);
void main()
{
int no;
while(1)
{
system(cls);
puts( MENU );
puts(1.INSERT);
puts(2.PRINT);
puts(3.END);
printf(\nchoice: );
scanf(%d , &no);
fflush(stdin);
switch(no)
{
case 1: insert(); break;
case 2: print(); break;
case 3: exit(1);
}
getchar();
}
}
void insert(void)
{
NODE* newnode, *cur;
//새로운 노드 삽입
newnode = (NODE*)malloc(sizeof(NODE));
printf(삽입할 정수 : );
scanf(%d , &newnode-key);
fflush(stdin);
newnode-next = NULL;
if(start==NULL) // 1. 아무것도 없을때
{
start = newnode;
printf(\n\t 배열이 비어있을 때 \n);
return;
}
if(start-key newnode-key); // 2. newnode가 가장클때
{
newnode-next = start;
start = newnode;
printf(\n\t 배열의 맨 앞 삽입\n);
return;
}
cur = start;
while(cur-next != NULL)
{
if(cur-next-key newnode-key) // 3. cur -- newnode -- cur-next
{
newnode-next = cur-next;
cur-next = newnode;
printf(\n\t 배열의 중간 삽입\n);
return;
}
cur = cur-next;
}
cur-next =newnode; // 4. 가장 마지막
printf(\n\t 배열의 맨 마지막 삽입\n);
}
void print(void)
{
NODE* cur;
if(start == NULL)
{
printf(\n\t배열이 비어 있어서 출력할수 없습니다.\n);
return;
}
printf(\nPRINT\n);
cur = start;
while(cur-next != NULL)
{
printf(%d - , cur-key);
cur = cur-next;
}
printf(%d , cur-key);
}