Olá Lidia.
Eu sugeriria estes que uso em Algoritmos e estrutura de dados na UFABC:
P. Feofiloff.
Algoritmos em Linguagem C. 1ª Edição, Editora Campos, 2008.
Veja também o site deste livro.
T. Cormen et al.
Algoritmos: Teoria e Prática. Rio de Janeiro: Editora Campus, 2ª
edição, 2002
A disciplina costuma envolver algoritmos básico em programação, como ordenação de dados, e entender como guardar informação em vetores, matrizes, listas conectadas (linked lists) e árvores de dados. Contudo, entender lógica de programação é fundamental, além de começar a desenvolver o senso crítico dos porquês alguns códigos são melhores que outros.
Há alguns desafios do HackerRank (https://www.hackerrank.com/domains/algorithms/warmup) que tratam de assuntos dessa disciplina, alguns de forma inclusive tutorial.