我正在做一个编程任务,我没有完全掌握链接,因为我们还没有涉及。不过,我觉得我需要它做我想做的是数组不sufficent创建列表清单(结构)
我创建了一个结构从这个如下
struct node
{
float coef;
int expo;
struct node *link;
};
我可以创建指向各具有不同名称的结构,但是我遇到的问题是我想要用户输入来确定我构建的数量。我也希望能够添加和创建不同的结构。
我正在做一个编程任务,我没有完全掌握链接,因为我们还没有涉及。不过,我觉得我需要它做我想做的是数组不sufficent创建列表清单(结构)
我创建了一个结构从这个如下
struct node
{
float coef;
int expo;
struct node *link;
};
我可以创建指向各具有不同名称的结构,但是我遇到的问题是我想要用户输入来确定我构建的数量。我也希望能够添加和创建不同的结构。
您需要创建一个头指针来跟踪您的列表。
这可能会有所帮助:
struct list
{
struct node *head;
int count;
};
而且你需要为每个新节点分配内存和头部移动到新创建的一个。
struct node *add_node(struct list *pList, float coef, int expo)
{
if (pList == NULL)
{
return NULL;
}
struct *node pNode = (struct node*)malloc(sizeof(struct node));
if (node == NULL)
{
return NULL;
}
pNode->coef = coef;
pNode->expo = expo;
pNode->link = pList->head;
pList->head = pNode;
pList->count++;
return pNode;
}
要删除一个元素,您需要将头部向前移动,然后释放它之前的内存。
void *delete_node(struct list *pList, float coef, int expo)
{
if (pList == NULL)
{
return NULL;
}
struct node *tmp = pList->head;
pList->head = pList->head->link;
free(tmp);
pList->count--;
}
注:
这不是最终版本。我只是把我的手指指向应该做的事情。
我会尝试这样的事情作为你的数据结构
struct node
{
float coef;
int expo;
struct node *link;
};
struct poly
{
node *value;
struct poly *link
}
保持的poly
S,每个都包含的node
个链表链表。
这看起来是什么即时通讯寻找,我会尝试它。谢谢。如果它的工作,我会选择这个答案。 – user3223190 2014-11-14 19:37:12
好的,那很好,你只需要保留一个指向头部结构的指针,然后在运行时就可以找到/创建其余的部分。 。 。那么问题是什么? – dsolimano 2014-11-14 18:40:40
我遇到的问题是上面是一个多项式的结构。但我似乎无法找到创建未定义数量的多项式的方法。因此,用户可以选择在运行时删除或添加更多的多项式 – user3223190 2014-11-14 18:44:05
因此,每个链接的结构列表都是一个多项式,并且您需要这些链接列表的可变数量? – dsolimano 2014-11-14 18:53:14