кодесурса
«C

Упражнения на C: поиск элемента в односвязном списке

script1adsense2code
script1adsense3code

C связанный список: упражнение 10 с решением

Напишите программу на C для поиска существующего элемента в односвязном списке.

Иллюстрированная презентация:

«C

Пример решения:

Код C:

#include <stdio.h>
#include <stdlib.h>
struct node
{
  int num;
  struct node *nextptr;
}
 
stnode, *ennode;
int FindElement(int);
void main()
{
	int n,i,FindElem,FindPlc;
	stnode.nextptr=NULL;
	ennode=&stnode;
		printf("\n\n Linked List : Search an element in a  Singly Linked List :\n");
		printf("---------------------------------------------------------------\n");
	
    printf(" Input the number of nodes : ");
    scanf("%d", &n);	
	printf("\n");
	for(i=0;i< n;i++)
	{
		ennode->nextptr=(struct node *)malloc(sizeof(struct node));
		printf(" Input data for node %d : ",i+1);
		scanf("%d",&ennode->num);
		ennode=ennode->nextptr;
	}
	ennode->nextptr=NULL;
	printf("\n Data entered in the list are :\n");
    ennode=&stnode;
	while(ennode->nextptr!=NULL)
	{
		printf(" Data = %d\n",ennode->num);
		ennode=ennode->nextptr;
	}
	printf("\n");
	printf(" Input the element to be searched : ");
	scanf("%d",&FindElem);
	FindPlc=FindElement(FindElem);
	if(FindPlc<=n)
		printf(" Element found at node %d \n\n",FindPlc);
	else
		printf(" This element does not exists in linked list.\n\n");
}
int FindElement(int FindElem)
{
	int ctr=1;
	ennode=&stnode;
	while(ennode->nextptr!=NULL)
	{
		if(ennode->num==FindElem)
			break;
		else
			ctr++;
			ennode=ennode->nextptr;
	}
	return ctr;
}

Пример вывода:

 Связанный список: поиск элемента в единственном связанном списке:                                                   
-------------------------------------------------- -------------                                               
 Введите количество узлов: 3                                                                                
                                                                                                              
 Входные данные для узла 1: 2                                                                                    
 Входные данные для узла 2: 5                                                                                    
 Входные данные для узла 3: 8                                                                                    
                                                                                                              
 Данные, введенные в список:                                                                               
 Данные = 2                                                                                                     
 Данные = 5                                                                                                     
 Данные = 8                                                                                                     
                                                                                                              
 Введите искомый элемент: 5                                                                         
 Элемент найден в узле 2

Блок - схема:

«Блок-схема:

FindElement ():

«Блок-схема:

Редактор кода программирования C:

Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.

Предыдущий: Напишите программу на C для удаления последнего узла Singlely Linked List.
Далее: Напишите программу на C для создания и отображения двусвязного списка.

Каков уровень сложности этого упражнения?

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code