Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

C 언어를 사용하여 연결 목록에서 머리 및 꼬리 요소 논리 삭제.

<시간/>

연결 목록은 동적 메모리 할당을 사용합니다. 즉, 그에 따라 확장 및 축소됩니다. 노드 모음입니다.

노드는 데이터와 링크의 두 부분으로 구성됩니다. 아래에 설명되어 있습니다.

C 언어를 사용하여 연결 목록에서 머리 및 꼬리 요소 논리 삭제.

연결된 목록에 대한 작업

연결 목록에는 다음과 같은 세 가지 유형의 작업이 있습니다. -

  • 삽입
  • 삭제
  • 횡단

삭제

  • 노드를 식별합니다.
  • 노드 할당 해제가 목록을 연결되지 않은 구성 요소로 만들지 않도록 링크를 조정합니다.
  • 삭제할 요소를 반환/표시합니다.
  • 메모리 할당을 해제합니다.

머리 요소 삭제

C 프로그래밍 언어에서 헤드 요소를 삭제하려면 아래 단계를 따르세요.

1. void del_head()
2. {
3. int x;
   Node *temp;
4. if(Head==NULL)
5. {
6. printf("List is empty");
7. return;
8. }
9. x=Head->ele;
10. temp=Head;
11. if(Head==Tail)
12. Head=Tail=NULL:
13. Else
14. Head=Head->next;
15. printf("Deleted element %d",x);
16. free(temp);
17. }

여기,

4단계 - 목록이 비어 있는지 확인합니다.

9단계 - 삭제할 요소를 읽습니다.

10단계 - 임시 포인터로 헤드 참조

11단계 - 마지막 삭제를 확인합니다.

14단계 - 헤드 포인터를 목록의 다음 요소로 이동합니다.

15단계 - 삭제할 요소를 표시합니다.

16단계 - 메모리 할당을 해제합니다.

꼬리 요소 삭제

C 프로그래밍 언어에서 꼬리 요소를 삭제하려면 아래 단계를 따르세요.

1. void del_tail()
2. {
3. int x;
4. Node *temp;
5. if(Head==NULL)
6. {
7. printf("List is empty");
8. return;
9. }
10. temp=Head;
11. while(temp->next !=Tail)
12. temp=temp->next;
13. x=Tail->ele;
14. Tail=temp;
15. Temp=temp->next
16. Tail->next=NULL;
17. printf("Deleted element %d",x);
18. free(temp);
19. }

여기,

4단계 - 목록이 비어 있는지 확인합니다.

10, 11, 12단계 - 임시 포인터를 목록의 마지막 노드를 제외한 한 노드로 이동합니다.

13단계 - 삭제할 꼬리 요소를 읽습니다.

14단계 - 꼬리 포인터를 마지막 하나의 노드로 이동합니다.

15단계 - 임시 포인터를 목록의 마지막 노드로 이동합니다.

16단계 - 꼬리 노드에서 임시 노드로의 참조를 제거합니다.

17단계 - 삭제할 요소를 표시합니다.

18단계 - 메모리 할당을 해제합니다.