0% encontró este documento útil (0 votos)
81 vistas4 páginas

Árboles

En el siguiente documento se presenta el concepto de árboles en programación con C#.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
81 vistas4 páginas

Árboles

En el siguiente documento se presenta el concepto de árboles en programación con C#.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Nombre:

Omar S. Guzmán

Matrícula:

2022-0866

Asignatura:

Estructura de datos

Tema:

Árboles

Docente:

Eduandy Isabel Cruz

Fecha:

03/07/2024

Institución:

Instituto Tecnológico de las Américas (ITLA)


Título de la Tarea:

Construye un árbol de categorías en C# para organizar productos en un catálogo de


compras. Permite agregar nuevos productos a las categorías y buscar productos de manera
eficiente.

C#:

using System;
using [Link];

// Clase para representar un producto


public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public double Price { get; set; }

public Product(int id, string name, double price)


{
Id = id;
Name = name;
Price = price;
}

public override string ToString()


{
return $"Product(Id: {Id}, Name: {Name}, Price: {Price})";
}
}

// Clase para representar una categoría


public class Category
{
public string Name { get; set; }
public List<Product> Products { get; set; }
public List<Category> Subcategories { get; set; }

public Category(string name)


{
Name = name;
Products = new List<Product>();
Subcategories = new List<Category>();
}

// Método para agregar un producto a la categoría


public void AddProduct(Product product)
{
[Link](product);
}

// Método para agregar una subcategoría


public void AddSubcategory(Category category)
{
[Link](category);
}

// Método para buscar un producto por su ID


public Product FindProduct(int id)
{
foreach (var product in Products)
{
if ([Link] == id)
return product;
}

foreach (var subcategory in Subcategories)


{
var product = [Link](id);
if (product != null)
return product;
}

return null;
}

public override string ToString()


{
return Name;
}
}

// Clase para el catálogo


public class Catalog
{
public List<Category> Categories { get; set; }

public Catalog()
{
Categories = new List<Category>();
}

// Método para agregar una categoría al catálogo


public void AddCategory(Category category)
{
[Link](category);
}

// Método para buscar un producto en el catálogo


public Product FindProduct(int id)
{
foreach (var category in Categories)
{
var product = [Link](id);
if (product != null)
return product;
}

return null;
}
}
// Ejemplo de uso
public class Program
{
public static void Main()
{
// Crear algunos productos
var product1 = new Product(1, "Laptop", 1000.0);
var product2 = new Product(2, "Smartphone", 500.0);
var product3 = new Product(3, "Tablet", 300.0);
var product4 = new Product(4, "Monitor", 200.0);

// Crear algunas categorías y subcategorías


var electronics = new Category("Electronics");
var computers = new Category("Computers");
var mobiles = new Category("Mobiles");

// Agregar productos a las categorías


[Link](product4);
[Link](product1);
[Link](product2);
[Link](product3);

// Agregar subcategorías a las categorías


[Link](computers);
[Link](mobiles);

// Crear el catálogo y agregar la categoría principal


var catalog = new Catalog();
[Link](electronics);

// Buscar un producto en el catálogo


var foundProduct = [Link](1);
if (foundProduct != null)
{
[Link]($"Producto encontrado: {foundProduct}");
}
else
{
[Link]("Producto no encontrado");
}
}
}

También podría gustarte