C语言,用C语言实现一个异质链表的基础功能(创建插入删除等),求思路与开端。 5

structNode{void*pData;structNode*pNext;};这是要求定义异质链表的格式,但还是感觉无从下手。求一个基本的思路。... struct Node{
void * pData;
struct Node * pNext;
};
这是要求定义异质链表的格式,但还是感觉无从下手。求一个基本的思路。
展开
 我来答
cosdos
2019-11-27 · 超过17用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:36.4万
展开全部
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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式