面试题答案
一键面试-
定义包含不同数据类型成员的结构体: 在C语言中,可以如下定义包含不同数据类型成员的结构体:
struct MixedData { int intValue; float floatValue; char charValue; };
-
定义简单泛型链表节点: 由于C语言没有像C++那样原生的泛型支持,我们可以通过
void*
指针来模拟泛型。typedef struct GenericListNode { void* data; struct GenericListNode* next; } GenericListNode;
这里
data
指针可以指向任何类型的数据,从而实现“泛型”。 -
泛型编程相较于传统固定类型链表的优势:
- 灵活性:
- 传统固定类型链表只能存储一种特定类型的数据。例如,若定义了一个
int
类型的链表,就无法直接存储float
或其他类型的数据。 - 泛型链表可以存储任意类型的数据,无需为每种数据类型都单独定义一个链表结构和操作函数,提高了代码的复用性。
- 传统固定类型链表只能存储一种特定类型的数据。例如,若定义了一个
- 可维护性:
- 对于传统固定类型链表,如果需要存储新的数据类型,需要重新编写链表的定义、插入、删除等操作函数。
- 泛型链表只需一套操作函数(如插入、删除等),通过
void*
指针来处理不同类型的数据,减少了代码量,使得维护更加容易。
- 灵活性: