수다닷컴

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

단순 연결리스트 질문이요

꽃내음

2023.04.01


질문 제목 :단순 연결리스트 질문이요 질문 요약 :단순 연결리스트를 구현 해보았는데 말도 안되는 오류가 나는데 뭔지를 모르겠어요질문 내용 :
#include stdio.h
#include stdlib.htypedef struct noderecord //이중연결리스트 에 사용될 구조체
{
char *date;
noderecord *next; //next는 다음 노드를 가리키게 함
} node;
typedef node* nptr; //nptr 타입이 가리키는 것은 node 타입
typedef struct
{ int count; //리스트 길이를 추적
nptr head; //헤드 포인터로 리스트 전체를 대변함
} listtype;void init(listtype* lptr); //연결리스트 초기화 - head를 할당한다.
void insert(listtype* lptr,int position, char* insertstr); //노드를 삽입한다.
void delete(listtype* lptr,int position); //노드를 삭제 한다.
void retrieve(listtype* lptr,int position, char* insertstr); //타겟 위치의 문자열을 바꿔준다.
bool isempty(listtype* lptr); //노드가 비어있는지 확인한다.
int length(listtype* lptr); //노드의 길이를 구한다.int main()
{
listtype mylist;
char* str = my name is ???;

init(&mylist); //데이터 초기화
insert(&mylist, 1, new york times);
insert(&mylist, 2, wall street journal);
insert(&mylist, 2, fox new);
retrieve(&mylist, 3, str);
delete(&mylist, 2);
if(isempty(&mylist))
printf(리스트가 비어있다...\n);
else
printf(리스트가 차있다..\n); show_data(&mylist); //데이터가 어떻게 저장되어있는지 출력/
printf(str은 : %s,str);
printf(리스트의 길이는 : );
printf(%d\n),length(&mylist); return 0;
}
void init(listtype* lptr) //데이터 초기화 함수
{
lptr-count = 0; //데이터 수를 0으로 세팅
lptr-head = null; //헤드 포인터를 널로 초기화
}
void insert(listtype* lptr,int positnt position, char* insertstr)
{
int i;
if ((position (lptr-count+1)) || (position 1))
printf(삽입 위치가 없습니다. \n); //이격된 삽입 위치 오류
else{
nptr newdate = (node*)malloc(sizeof(node)); //삽입될 노드의 공간 확보
newdate-date = insertstr; //데이터 값 복사
if(position == 1) //첫 위치에 삽입 할 경우
{
newdate-next = lptr-head; //삽입노드가 현재 첫 노드를 가리킴
lptr-head = newdate; //헤드가 삽입 노드를 가리키게 함
}
else //첫 위치가 아닐 경우
{
nptr temp = lptr-head; //헤드 포인터를 temp로 복사
for(i=1; i(position-1); i++)
{
temp = temp-next; //temp가 삽입직전의 노드를 가리키게
}
newdate-next = temp-next; //삽입노드의 next를 설정
temp-next = newdate; //직전 노드가 삽입된 노드를 가리키게
}
lptr-count += 1; //리스트 길이를 늘림
}
}void delete(listtype *lptr, int position)
{
int i;
if (isempty(lptr)) //빈 리스트에서 함수 호출시 오류 (isempty(lptr) 함수 사용)
printf(리스트가 비어있는데 삭제를 하겠다고?);
else if (position (lptr-count) || (position 1)) //위치 요청 오류
printf(삭제위치가 현제 데이터 범위를 벚어나잔아..);
else
{
nptr b = (node *)malloc(sizeof(node)); //백업공간 확보
if (position == 1) //첫 노드를 삭제할 경우
{
nptr b = lptr-head; //삭제될 노드를 가리키는 포인터를 백업
lptr-head = lptr-head-next; //헤드가 둘째 노드를 가리키게
}
else
{
nptr temp = lptr-head;
for (i=1; i (position-1); i++)
temp = temp-next; //temp가 삭제직전 노드를 가리키게
nptr b = temp-next; //삭제될 노드를 가리키는 포인터를 백업
temp-next = b-next; //직전노드가 삭제될 노드 다음 노드를 가리키게
}
lptr-count -=1; //리스트 길이 줄임
free(b); //메모리 공간 반납
}
}void retrieve(listtype *lptr,int position, char* insertstr) //데이터 복사
{
int i;
if (isempty(lptr)) //빈 리스트에서 함수 호출시 오류 (isempty(lptr) 함수 사용)
printf(리스트가 비어있는데 데이터를 바꾸겠다고?);
else if (position (lptr-count) || (position 1)) //위치 요청 오류
printf(교체위치가 현제 데이터 범위를 벚어나잔아..);
else
{
nptr temp = lptr-head; //헤드 포인터를 temp로 복사
for(i=1; i(position); i++)
{
temp = temp-next; //temp가 교체할 노드를 가리키게
}
temp-date = insertstr;
}
}
int length(listtype *lptr)
{
return (lptr-count); //리스트 길이 반환
}
bool isempty(listtype* lptr) //빈공간 /빈공간 확인
{
return (lptr-count == 0); //비어있다면 true
}
void show_data(listtype *lptr)
{
int i=0;
for(; ilptr-count; i++)
{
printf(count : %d ),i+1;
printf( data : %s),lptr-head-date;
}
}------------------코드 내용이고요.. 오류가 구문오류 74개가 나는데 문법상 오류는 없어 보여서요 ㅠㅠ
뭐가 잘못된지 못찾겠어요살려주세요 ㅠㅠ 골머리 터지겠네요 ㅠ

신청하기





COMMENT

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

  • 큰꽃늘

    오류 잡았어요 ㅠ
    typedef struct nodeRecord //이중연결리스트 에 사용될 구조체

    {

    char *Date;

    nodeRecord *Next; //Next는 다음 노드를 가리키게 함

    } node;

    처음 구조체 선언시
    nodeRecord *Next; //Next는 다음 노드를 가리키게 함
    부분에 그러니깐
    - (struct) nodeRecord *Next; //Next는 다음 노드를 가리키게 함
    를 넣어야

  • Schokolade

    구문 오류와 문법 오류는 같은 말입니다. 오류 내용을 올려보세요.

번호 제 목 글쓴이 날짜
2694929 열혈강의 25-2 두번째 문제 질문 지우개 2025-05-15
2694900 dequeue 에서 리턴값 프린트 방법알려주세요 오늘 12시까지 대화방에 있습니다 도와주세요 미투리 2025-05-15
2694854 절대값을 구할때 (2) 그녀는귀여웠다 2025-05-15
2694827 이제 어떻게 공부해야할지 모르겠네요 새얀 2025-05-14
2694778 순열 계산요. 맛조이 2025-05-14
2694754 ShowWindow 함수를 이용하려 하는데 질문있습니다. (2) 파도 2025-05-14
2694731 리눅스 커널의 시작점 질문 미르 2025-05-13
2694702 이거 뭐가문제인가요 코드수정좀 (3) 맑은 2025-05-13
2694675 C언어 후위표기를 중위표기로 앨런 2025-05-13
2694646 안녕하세요 파일 합치기 함수! (1) 연블루 2025-05-13
2694618 잘몰라서 설명부탁드립니다. scanf 관련 (3) 파라 2025-05-12
2694590 이 코드가 뭐하는 코드일까요? #2 빵순 2025-05-12
2694559 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) 늘솔길 2025-05-12
2694532 네트워크에 관하여... (4) 황소자리 2025-05-12
2694503 프로그램 연산 후 바로 종료되는 현상 (6) Judicious 2025-05-11
2694450 while문질문입니다. (1) 허리품 2025-05-11
2694420 C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) 은새 2025-05-11
2694370 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 들찬 2025-05-10
2694339 putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) 미르 2025-05-10
2694316 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) 나빛 2025-05-10
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

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