Ну, в C нет доступных типов данных "vector" и "list", доступных вам напрямую, как в библиотеке C ++ std. Но в терминах «абстрактного типа данных» вектор обычно считается представляющим непрерывное хранилище, а связанный список считается представленным отдельными ячейками, связанными вместе. Векторы обеспечивают быстрые операции чтения и записи с произвольным доступом в постоянное время, но вставка и удаление векторных элементов занимают линейное время. Списки имеют линейную производительность поиска, чтобы найти элемент для чтения и записи, но, учитывая расположение элемента, имеют постоянное время вставки и удаления. Вы также можете добавлять элементы в начало и конец списка за постоянное время (если реализация ADT кэширует местоположение последнего элемента в списке).