단순 연결리스트의 ADT/ 구현
새 노드를 추가할 때, 리스트의 머리와 꼬리 중 어디에 저장할 것인가?
머리에 추가한 경우 : tail 이 불필요, 저장된 순서 유지 불가
꼬리에 추가 : 저장된 순서 유지가능, tail이 필요함
문제 04-02
더미 노드를 적용했을 떄의 코드 변화를 확인하기
작성한 코드
head = (Node*)malloc(sizeof(Node));// 더미 노드 추가
tail = head;//
정렬 기능이 추가된 연결 리스트의 구조체와 헤더파일의 정의
연결리스트의 구현에서는 노드를 표현한 구조체의 정의는 빠지지 않는다.
typedef struct_node
{
LData data;
struct_node*next;
} Node;
연결리스트의 구현에 필요한 변수들을 어찌 됐든 전역변수로 선언해서는 안된다.
리스트 자료구조도 하나만 사용되는 법이 없기에 다수의 리스트가 필요한 상황에서
head, cur 같은 포인터 변수를 전역변수로 선언할 경우 여러개의 리스트 세트를 생성해야 하는 불상사가 발생한다.
따라서 포인터변수는 연결 리스트를 의미하는 구조체를 별도로 정의해야 한다.
반응형
'자료구조' 카테고리의 다른 글
[자료구조] 연결리스트- 변형된 원형 연결리스트 (0) | 2021.02.02 |
---|---|
[자료구조]04. 연결리스트 - 연결리스트의 응용 (다항식) (0) | 2021.01.26 |
[자료구조]03. 연결 리스트-자료구조 (0) | 2021.01.20 |
[자료구조]01. 알고리즘의 성능분석 방법 - 시간복잡도 / 공간복잡도 (2) | 2021.01.13 |