Вы можете реализовать его по своему усмотрению. Если вы используете подход со связанным списком, то ваша вставка будет O (1), а поиск и удаление будут O (n). Если вы используете что-то более сложное, например, красно-черное дерево, у вас будет гораздо лучшая средняя производительность.
Если вы реализуете его самостоятельно, то, вероятно, самый простой - это связанный список, в противном случае лучшим вариантом будет получение из Интернета соответствующего лицензированного красно-черного или другого типа дерева. Реализация собственного красно-черного дерева не рекомендуется ... Я сделал это и предпочел бы не делать это снова.
И чтобы ответить на вопрос, который вы не задавали: возможно, вам следует еще раз проверить, действительно ли перенос на C из C ++ дает все те преимущества, которые вы хотели. Конечно, бывают ситуации, когда это может быть необходимо, но таких не так много.