수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

이게 연결리스트의 중간 삽입, 삭제가 맞는지요?

맛깔손

2023.04.01

#includestdio.h
#includestdlib.h
typedef struct Listnode
{
int data;
struct Listnode *link;
}List;
void insert_f(List **head, List **p, List *first, int value);
void delete_f(List **head, List **p, List *remove);
void print_f(List *head);
void main()
{
List *head = NULL;
List *p = NULL;
int num, insert_value;
while(1)
{
printf(\n);
printf(삽입은 1, 삭제는 2를 입력 : );
scanf(%d, &num);
if(num == 1)
{
printf(삽입할 정수 입력 : );
scanf(%d, &insert_value);
insert_f(&head, &p, head, insert_value);
print_f(head);
}
if(num == 2)
{
delete_f(&head, &p, head);
print_f(head);
}
}
}
void insert_f(List **head, List **p, List *first, int value)
{
List *insert_node;
if(*head == NULL && *p == NULL)
{
insert_node = (List *)malloc(sizeof(List));
insert_node - data = value;
insert_node - link = *head;
*head = insert_node;
}
else if(*head != NULL && *p == NULL)
{
insert_node = (List *)malloc(sizeof(List));
insert_node - data = value;
insert_node - link = *head;
*head = insert_node;
*p = *head;
}
else
{
insert_node = (List *)malloc(sizeof(List));
insert_node - data = value;
insert_node - link = first - link;
first - link = insert_node;
}
}
void delete_f(List **head, List **p, List *remove)
{
if(*head == NULL)
{
printf(삭제할 노드가 없습니다);
}
else if(remove - link != NULL)
{
remove - link = remove - link - link;
}
else if(remove - link == NULL)
{
*head = remove - link;
*p = remove - link;
}
}
void print_f(List *head)
{
while(head != NULL)
{
if(head - link == NULL)
{
printf(%d - NULL, head - data);
head = head - link;
}
else
{
printf(%d - , head - data);
head = head - link;
}
}
}

이게 연결리스트의 중간삽입, 삭제가 맞는지요?
일단 노드를 두개 만든후 그 사이에다가 쭉 삽입하고
삭제할때도 중간노드들부터 삭제한후 꼬리 머리 삭제는 하는데요.
제가 가진 자료구조 책이 제대로 된 소스가 안적혀 있어서.....;;
제가 짠 소스가 맞는지 확인할 길이 없어서 질문올립니다.

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 레이

    더블 포인터. 쓰셨네요 ^^;

  • 사과

    감사합니다.

  • 핑크펄

    테스트 해보면 알죠. -_-;; 이런건 물어볼 필요가 없는거 같은데... 간단하게 함수 호출하기 전과 후의 리스트만 출력해봐도 알텐데 이렇게 질문 올리고 답변 기다리는 대신에 테스트 코드 짜서 결과 확인하는게 더 빠르겠네요...

번호 제 목 글쓴이 날짜
2695844 저기 암호화 및 복호화 프로그램.. 만들어볼려는대 (2) 한빛 2025-05-24
2695814 [질문] PDA에서 애플릿이 가능한가요? (1) 봄시내 2025-05-24
2695785 웹 설정 도와줄분 화이트캣 2025-05-23
2695730 갑자기 기억이 안나는데 accesskey 속성.. 빛나라 2025-05-23
2695702 [질문] Java 버전 차이에 의한 오류?!! (2) 검사 2025-05-23
2695672 자바 임베디드 쪽으로 배우고 싶은데요..질문이요.. (1) 뽀그리 2025-05-22
2695647 헉! 이클립스(v3.1)에서 발생되는 널포인트 익셉션? ;;; (3) 아빠몬 2025-05-22
2695586 IFRAME 캐싱 질문 봄나비 2025-05-22
2695498 [질문]실행가능한 jar파일.. 정말 이해가 안가네요... ㅡㅜ;; 터1프한렩 2025-05-21
2695468 자바랑 이클립스에서요.. 스킬 2025-05-21
2695375 Mysql 연동하는 자바 질문있습니다. 아리솔 2025-05-20
2695319 파워포인트 파일을 저장할 수 있을까요? 시윤 2025-05-19
2695289 [질문]Tween 값의 정도를 알고 싶습니다. 타마 2025-05-19
2695238 c 와 c++의 시작 (10) ChocoHoilc 2025-05-18
2695215 탑메뉴의 repeat-x .배경이 두가지에요ㅠ ㅠ 널위해 2025-05-18
2695187 자바스크립트와 자바의 import에 관해서 질문드려요 (1) 무슬 2025-05-18
2695116 테마 문의 (해당 사이트와 같은 테마 혹은 플러그인) Sweet 2025-05-17
2695084 [질문] starDrag()와 같은 함수 만들기 민구 2025-05-17
2695055 폰트 질문드립니다. 할인사이트에 많이 쓰는 굵은 숫자폰트.. (2) 일본녀 2025-05-17
2695025 [개발툴]Jcreator 에 관해서... (5) 에녹 2025-05-16
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com