연결된 목록에서 가장 큰 수와 가장 작은 수를 찾습니다.

3110 단어 clinkedlistbeginners
주어진 연결 목록에 대해 연결 목록에서 가장 큰 숫자와 가장 작은 숫자를 찾고 두 숫자를 모두 인쇄하는 두 개의 개별 함수를 작성해야 합니다.

예 1:
입력: 4 6 2 8 1
산출: 가장 큰 수: 8
출력: 가장 작은 수: 1

예 2:
입력: 4 5 9 8 2
산출: 가장 큰 수: 9
출력: 가장 작은 수: 2

가장 큰 숫자를 찾는 단계:


  • 정수 변수 maxINT_MIN로 초기화합니다.
  • 임시 포인터temp를 사용하여 연결 목록 순회를 시작하고 연결 목록의 끝까지 연결 목록의 각 데이터 요소를 변수max와 비교합니다.
  • 현재 노드의 데이터가 max 값보다 크면 현재 노드의 데이터 값을 max에 저장합니다.
  • 마지막으로 연결된 리스트 중 가장 큰 숫자를 포함하는 변수max의 값을 출력합니다.

  • 가장 작은 수를 찾는 단계:


  • 정수 변수 minINT_MAX로 초기화합니다.
  • 임시 포인터temp를 사용하여 연결 목록 순회를 시작하고 연결 목록의 끝까지 연결 목록의 각 데이터 요소를 변수min와 비교합니다.
  • 현재 노드의 데이터가 min 값보다 작으면 현재 노드의 데이터 값을 min에 저장합니다.
  • 마지막으로 연결된 목록의 가장 작은 숫자를 포함하는 변수min의 값을 인쇄합니다.

  • 참고: 모든 데이터 요소가 이보다 작기 때문에 INT_MAX를 사용하고 모든 데이터 요소가 이보다 크기 때문에 INT_MIN을 사용합니다. 이 두 매크로를 사용하면 발견이 매우 쉬워집니다.

    연결 리스트에서 가장 큰 수와 가장 작은 수를 찾는 C 프로그램.

    #include <stdio.h>
    #include <stdlib.h> 
    #include <limits.h>
    
    struct node
    {
        int data;
        struct node * next;
    };
    
    void displayLL(struct node * head)
    {
        struct node * temp;
        temp = head;
        temp=head;
        while(temp!=0)
        {
           printf("%d ",temp->data);
           temp = temp->next;
        }
    }
    void small(struct node *head)
    {
       struct node *temp = head;
       int min;
       min = INT_MAX;
    
       while(temp != NULL)
       {
           if(min > temp->data)
           {
               min = temp->data;
           }
           temp = temp->next;
       }
       printf("\n--------------------------------\n");
       printf("Smallest number of linked list : %d", min);
    }
    
    void large(struct node *head)
    {
       struct node *temp = head;
       int max;
       max = INT_MIN;
    
       while(temp != NULL)
       {
           if(max < temp->data)
           {
               max = temp->data;
           }
           temp = temp->next;
       }
       printf("\n--------------------------------\n");
       printf("Largest number of linked list : %d", max);
    }
    
    int main()
    {
       struct node *head = 0, *newnode, *temp; 
       int n, choice, newdata;
    
    // Create Linked List // 
    
       printf("Enter the number of nodes in the list : ");
       scanf("%d", &n);
    
       if(n == 0)
        {
          printf("--------------------------------\n");
          printf("Linked list cannot be empty");
          exit(0);
        }
    
       for(int i = 1; i<=n; i++)
       {
         newnode = (struct node *)malloc(sizeof(struct node));
         printf("Enter the data%d : ", i);
         scanf("%d", &newnode->data);
         newnode->next = 0;
         if(head == 0)
         {
            head = temp = newnode;
         } 
         else
           { 
            temp->next = newnode;
            temp = newnode;
           }
        }
       printf("--------------------------------\n");
       printf("Linked list : ");
       displayLL(head);
       small(head);
       large(head);
    }
    

    좋은 웹페이지 즐겨찾기