C和数据结构编程

来源:百度知道 编辑:UC知道 时间:2024/05/16 13:29:42
1、用顺序或链式做一元多项式的加法,随便什么题。
2、已知线性表分别LA和LB分别表示集合A和B,用静态分配求这两个集合的并集C。
因为刚学习数据结构,不会做,用的知识越基础越好。
谢谢啊!

/*由于代码较长,我没有再作改动,这是C++代码,要在C环境下运行,只需把引用方式改下即可*/

#include <stdio.h>
#include <malloc.h>
typedef struct node
{ float coef; /*序数*/
int expn; /*指数*/
struct node *next; /*指向下一个结点的指针*/
} PolyNode;
void InitList(PolyNode *&L) /*初始化多项式单链表*/
{
L=(PolyNode *)malloc(sizeof(PolyNode)); /*建立头结点*/
L->next=NULL;
}
int GetLength(PolyNode *L) /*求多项式单链表的长度*/
{
int i=0;
PolyNode *p=L->next;
while (p!=NULL) /*扫描单链表L,用i累计结点个数*/
{
i++;p=p->next;
}
return i;
}
PolyNode *GetElem(PolyNode *L,int i) /*返回多项式单链表中第i个结点的指针*/
{
int j=1;
PolyNode *p=L->next;
if (i<1 || i>GetLength(L))
return NULL;
while (j<i) /*沿next域找第i个结点*/
{
p=p->next;j++;
}
return p;
}