当前位置:首页 » 编程语言 » 异质链表c语言
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

异质链表c语言

发布时间: 2022-01-22 23:25:44

❶ 可以用 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个派生类,即本科生、脱产研究生、在职研究生、职工和教师。