❶ 可以用 C 语言实现“异质链表”吗
可以 
而且并不难。 
用c语言实现多态性的基本思想是使用void*指针,在存储链表结点值的时候将地址存入。
也就是说结点中存储的值并不是具体的值,而是一个地址,由于这个地址是main中的本地变量,所以不用担心它会被摧毁。
在读取的时候,进行强制类型转换即可。
❷ 如何利用异质链表实现不同人员信息的录入,删除,输出,查找
是不是可以这样:
1 创建一个表示人员的基类,基类中设置一些虚函数;
2 由该基类派生各类人员的子类,子类中实现基类中的虚函数;
3 建立基类对象的链表(链接指针类型为基类)。
❸ 请问如何用c语言实现异质链表
有一个想法(没有实验,不知可行的通):
建一个结点类型为
struct Node{
   int type; // 表示 “异质链表” 结点的类型
  void * pnode; // 指向 “异质链表” 结点(访问 “异质链表” 结点时,根据type进行指针类型转换)
   struct Node *next;
};
的链表plist。
遍历链表plist时,对于每一个结点的处理通过if 或 switch语句来区分“异质链表” 结点的类型并分别处理。
不过对于 “异质链表” ,最好还是使用C++,利用C++多态性很容易实现。
❹ C语言,用C语言实现一个异质链表的基础功能(创建插入删除等),求思路与开端。
struct Node
{
    void * pData;
    struct Node * pNext;
};
struct LinkedList
{
    struct Node * pHead;
    int count;
};
struct Node *constructNode(void *pData)
{
    struct Node *p = (struct Node*)malloc(sizeof(struct Node));
    if (NULL == p) {
        return NULL;
    }
    p->pData = pData;
    p->pNext = NULL;
    return p;
}
void destructNode(struct Node *pNode)
{
    free(pNode->pData);
    free(pNode);
}
struct Node *getLastNode(struct LinkedList * pList)
{
    struct Node *p = pList->pHead;
    if (NULL != p) {
        while (p->pNext != NULL) {
            p = p->pNext;
        }
        return p;
    }
    return NULL;
}
void initLinkedList(struct LinkedList * pList)
{
    pList->pHead = NULL;
    pList->count = 0;
}
int appendNode(struct LinkedList * pList, void *pData)
{
    struct Node *pNewNode = constructNode(pData);
    struct Node *pLastNode = getLastNode(pList);
    if (NULL != pNewNode) {
        if (NULL != pLastNode) {
            pLastNode->pNext = pNewNode;
        } else {
            pList->pHead = pNewNode;
        }
        ++pList->count;
        return pList->count;
    }
    return -1;
}
❺ 用c语言编写简易人事管理系统主要有工人号码,姓名,出生日期,工资
摘要 构建基类person,具体包含“姓名”、“性别”、“年龄”、“身份证号码”这四个属性。从基类派生出5个派生类,即本科生、脱产研究生、在职研究生、职工和教师。
