словарь - это бинарное дерево поиска по ключу. ключ - первые несколько букв слова, взависимости от глубины спуска по дереву это первая буква или вторая и т. д.
надо определить функции по построению дерева,
по поиску и удалению элемента по его счетчику обращений (счетчик обращений в роли ключа).
по добавлению элемента,
по поиску по ключу "первые нескоько букв" для вывода на экран.
затем оперируя функциями:
создать дерево.
пока дерево не пусто изымать из него элемент и записывать его в новое дерево.
Првильно*?