첫 노드 앞에 새로운 노드 추가하는 방법
큰가람
main에 들어온 숫자를 오름차순으로 삽입해야 합니다.
참고로 같은 숫자는 들어오지 않습니다.
문제는작은 수를 먼저 입력하고 큰 수를 나중에 입력하면 문제가 없습니다.
그러나 큰 수를 먼저 입력하고 작은 수를 나중에 입력하면노드값들을 무한 출력 하다
프로그램이 멈추어 버립니다.
ex) 1 - 2 문제 없음
2 - 1 프로그램 멈춤
파란색으로 표시된 부분이이전 입력으로 인해 하나의 노드가 존재할 경우
기존 노드보다 큰 수가 들어오면 노드 뒤에 큰 수 노드를 연결하고
기존 노드보다 작은 수가 들어오면 노드 앞에 작은 수 노드를놓는 기능을 합니다.
이 부분에 문제가있는 것 같으니파란색 부분 위주로 봐주시면 됩니다.
전부터 느끼는 거지만 링크드 리스트 부터는 답변 받기 힘드네요.
이번에 답변 기대해 봅니다.
질문 내용 :
#includestdio.h
#includestdlib.h
#includeconio.h
#includestring.h
typedef struct DATA{
int num;
struct DATA *next;
}*LINK;
LINK start=NULL; //첫 노드를 가리키는 포인터
LINK current=NULL; //현재 노드를 가리키는 포인터
/*main에서 숫자 value를 넘겨 받습니다.*/
void insert(int value)
{
current=start;
LINK node=NULL;
node=(LINK)malloc(sizeof(DATA));
node-num=value;
node-next=NULL;
if(start==NULL) //노드가 하나도 없는 경우
{
start=node;
return;
}
if(start-next==NULL) //노드가 하나인 경우 //기존노드 새로운 노드
{ // [1] - [2]
if(start-numvalue)//새로운노드 기존노드
{ // [1]- [2]
node=start-next;
return;
}
else //start-numvalue, 새로운 숫자가 작으면
{
node=start; //새로운 노드를 첫 노드로 지정
node-next=current;
return;
}
}
pre=start;
current=current-next; //current를 start,pre보다 앞으로 보냄
while(current-next-next) //노드가 2개 이상인 경우
{
if(current-numvalue)
{
node=pre-next;
node-next=current-next;
}
pre=pre-next;
current=current-next;
}
if(current-numvalue)
{
node=start-next;
return;
}
else
{
nonbsp; node=start;
node-next=current;
return;
}
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2695707 | 3의 배수 나타내기. (2) | 수리 | 2025-05-23 |
2695626 | 피보나치수열 과제 때문에 질문 드립니다. (6) | 옆집언니 | 2025-05-22 |
2695595 | 포인트공부중입니다 int형에서 4=1 인가요? (3) | 족장 | 2025-05-22 |
2695567 | 드라이브 고유번호를 가져오는 함수 (2) | 초코맛사탕 | 2025-05-21 |
2695533 | 음수의 산술변환! 질문이요 ㅠㅠ... (4) | 꽃여름 | 2025-05-21 |
2695506 | 구조체 배열 이용 도서목록 출력 프로그램 (1) | 가을귀 | 2025-05-21 |
2695450 | c언어 함수 질문이요.... | 이슬비 | 2025-05-20 |
2695403 | VirtualAlloc함수 및 메모리 질문 | 크리에이터 | 2025-05-20 |
2695355 | c언어 for함수 | 미쿡 | 2025-05-19 |
2695327 | 안녕하세요 제가 이번에 좀 큰 프로그램을.. | 악당 | 2025-05-19 |
2695295 | mutex동기화의 thread기반 채팅 서버소스 질문입니다 | 그루터기 | 2025-05-19 |
2695270 | 질문이요..swap 관한겁니다..ㅠㅠ (3) | 콩알녀 | 2025-05-19 |
2695244 | 노땅초보궁금한게 하나 있는데요..반복문(while문)초보자질문 (6) | 큰꽃늘 | 2025-05-18 |
2695166 | do while 문 어떤것이잘못된건지 모르겠어요 (2) | 아이폰 | 2025-05-18 |
2695122 | 구조체에 대해 물어보고 싶은게 있습니다 ^^^.. (7) | 수련 | 2025-05-17 |
2695091 | txt 파일 입출력 후 2차 배열에 저장하기입니다. (3) | 헛장사 | 2025-05-17 |
2695063 | 수도요금 프로그램좀 짜주세요. | 시내 | 2025-05-17 |
2695033 | 답변좀요ㅠㅠ (1) | 비사벌 | 2025-05-16 |
2695010 | C++의 STL은 왜 굳이 템플릿화 시켜서 라이브러리를 만드나요? (초보수준의 질문..) (2) | 엘보어 | 2025-05-16 |
2694958 | 로직이 변한다는 것에 대해서 궁금합니다. | 튼동 | 2025-05-16 |