링크드리스트 질문..
에드가
질문 제목 : 링크드리스트 코드질문좀할게요첫번째 노드로 삽입하는함수
중간노드로 삽입하는 함수
리스트 노드 삭제 함수
리스트 l에서 x노드탐색함수
이 4개 함수를 제가 만들었는데 컴파일은 되는데 실행하다가
변수 pre가 초기화 되지않고 사용되었다고오류가뜹니다 ㅠㅠ 해결좀부탁드려요
질문 내용 :
#includestdio.h
#includestdlib.h
#includestring.h
typedef struct listnode{
char data[10];
struct listnode* link; //링크필드
}listnode;
typedef struct{
listnode* head;
}linkedlist_h;
linkedlist_h* createlinkedlist_h(void); //초기화하는 함수
void freelinkedlist_h(linkedlist_h*); //메모리해제 함수
void addfirstnode(linkedlist_h*, char*); //첫번째노드에삽입하는 함수
void addmiddlenode(linkedlist_h*,listnode*, char*); //중간노드에 삽입하는 함수
listnode* searchnode(linkedlist_h* l, char* x); //노드탐색 함수
void deletenode(linkedlist_h*); //노드삭제 함수
void printlist(linkedlist_h*); //화면출력 함수
linkedlist_h* createlinkedlist_h(void){
linkedlist_h* l;
l = (linkedlist_h*)malloc(sizeof(linkedlist_h));
l - head = null;
return l;
}
void addfirstnode(linkedlist_h* l, char* x){
listnode* newnode;
newnode = (listnode*)malloc( sizeof(listnode) );
strcpy(newnode-data,x);
newnode-link = l-head;
l-head = newnode;
}
void addmiddlenode(linkedlist_h* l, listnode* pre, char* x){
listnode* newnode;
newnode = (listnode*)malloc( sizeof(listnode) );
strcpy(newnode-data,x);
pre = searchnode(l,월);
if(l-head == null){
l-head = newnode;
newnode-link = null;}
else{
newnode-link = pre-link;
pre-link = newnode;}
}
void deletenode(linkedlist_h* l){
listnode* old, * pre;
pre = searchnode(l,월);
if(l-head == null){
printf(삭제 할 노드가 없습니다.\n);}
else{
old = pre-link;
if(old == null) return;
pre-link = old-link;
}
free(old);
}
listnode* searchnode(linkedlist_h* l, char* x){
listnode* p;
p = l-head;
while(p != null) {
if(p-data == x) return p;
p = p-link;
}
return p;
}
void freelinkedlist_h(linkedlist_h* l){
listnode* p;
while(l-head != null){
p = l-head;
l-head = l-head-link;
free(p);
p=null;
}
}
void printlist(linkedlist_h* l){
listnode* p;
printf(l=();
p = l-head;
while(p != null){
printf(%s,p-data);
p = p-link;
if(p != null){
printf(,);
}
}
printf()\n);
}
int main(){
listnode* pre;
linkedlist_h* l;
l = createlinkedlist_h();
printf(공백리스트 생성하기!\n);
printf(첫번째 노드로 2개의 노드 추가하기!\n);
addfirstnode(l,수);
addfirstnode(l,월);
printlist(l);
printf(중간 노드로 1개의 노드 추가하기!\n);
addmiddlenode(l,pre,화);
printlist(l);
printf(두번째 리스트 노드 삭제하기!\n);
deletenode(l);
printlist(l);
printf(리스트 공간을 해제하여, 공백리스트 상태로 만들기!\n);
freelinkedlist_h(l);
printlist(l);
return 0;
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2655471 | 링 버퍼 구현된 소스 인데요.. 이해가 잘안되서요.. | 소심한녀자 | 2024-05-20 |
2655440 | test파일이 안 되요. (2) | 리라 | 2024-05-19 |
2655416 | 고수님들 도움이 절실합니다. (2) | 세리 | 2024-05-19 |
2655361 | 엔터 입력받을때까지 기다리는 getchar (1) | 큰모음 | 2024-05-19 |
2655328 | 함수에서 포인터 (3) | 모아 | 2024-05-18 |
2655299 | 아이콘바꾸는법..? | 소 | 2024-05-18 |
2655271 | scanf 입력받으면 쭉 실행되는.. (5) | ComeOn | 2024-05-18 |
2655184 | 이 세개 프로그램좀 해결해주실.... 고수님들???? (3) | 말달리자 | 2024-05-17 |
2655129 | 다차원 배열 원소들 주소계산하는거 질문이요~ | 터전 | 2024-05-17 |
2655103 | AVRstudio MoveAxis. MoveLine 함수질문 | 앨버트 | 2024-05-16 |
2655072 | 콘솔창의 위치와 크기를 정하고 싶습니다. | 딥레드 | 2024-05-16 |
2655044 | 자료구조랑 online judge site에 대해서 질문있습니다... (1) | 뽀송뽀송 | 2024-05-16 |
2655016 | 별찍기 문제 중 이해안되는 부분이 있어요... | 도전중 | 2024-05-16 |
2654986 | 입력받은 성적을 배열에 저장하기 (3) | 안녕나야 | 2024-05-15 |
2654959 | ===========-이런거 미리 지정하는법 (1) | 김자영 | 2024-05-15 |
2654930 | 도와주십시요 ㅜㅜ 자료구조 ㅜㅜ | 도널드 | 2024-05-15 |
2654881 | PID 모듈 검색 부분 질문합니다 . | 이름없음 | 2024-05-14 |
2654850 | 조건에 만족하는 다음 수를 찾고 싶습니다. | 초엘 | 2024-05-14 |
2654790 | 두파일간 byte단위 txt파일 복사 中 | 슬찬 | 2024-05-14 |
2654768 | 사전만들기 입니다. | 여우By | 2024-05-13 |