❶ 可以用 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個派生類,即本科生、脫產研究生、在職研究生、職工和教師。
