링크드리스트 질문..
에드가
질문 제목 : 링크드리스트 코드질문좀할게요첫번째 노드로 삽입하는함수
중간노드로 삽입하는 함수
리스트 노드 삭제 함수
리스트 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;
}
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |
2675356 | 2진수를 10진수로 바꾸려고 하는데 막히네요.. | 풀잎 | 2024-11-17 |
2675297 | Prity 비트 발생기 | 한란 | 2024-11-16 |
2675249 | C책 좀 추천해 주세요 (2) | 딸기우유 | 2024-11-16 |
2675193 | 연습문제 17-1 질문입니다. | 한별나라 | 2024-11-15 |
2675172 | 소스점 | 아이뻐 | 2024-11-15 |