如何用动态数组做一元多项式的加减?

woaitmac1314 2010-04-18 10:25:39
C中有没有可能用动态数组做一元多项式的加减?大虾们给我点提示。。。
链表的方法我会了,现在想着用数组做。。。
...全文
231 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
woaitmac1314 2010-04-20
  • 打赏
  • 举报
回复
其实c里面也可以实现动态数组的吧。。这样不就可以了?
可以通过调用malloc来实现!

#include <stdio.h>
#include <stdlib.h>
main()
{ int *p,count;
scanf("%d",&count);
p=(int*)malloc(count*sizeof(int));
for(int i=0;i<count;i++)
p[i]=i;
for(int j=0;j<count;j++)
printf("%d",p[j]);
}

可以自己定义数组的大小!!

可不可以告诉我一个用数组做一元多项式加减的算法?

南气子水 2010-04-18
  • 打赏
  • 举报
回复

//- - - - - 线性表的动态分配顺序存储结构 - - - - -
#define LIST_INIT_SIZE 100 //线性表存储空间的初始分配量
#define LISTINCREMENT 10 //线性表存储空间的分配增量
typedef struct
{
int *elem; //存储空间基址
int length; //当前长度
int listsize; //当前分配的存储容量(以sizeof(int)为单位)
}Sqlist; //顺序表类型

int InitList_Sq(Sqlist *L)//构造一个空的线性表L。
{
L->elem=(int *)malloc(LIST_INIT_SIZE*sizeof(int));
if(!L->elem)
{
exit(OVERFLOW); //存储分配失败
}
L->length=0; //空表长度为0
L->listsize=LIST_INIT_SIZE;//初始存储容量
return OK;
}// InitList_Sq

int ListInsert_Sq(Sqlist *L,int i,int e)//在顺序表L中第i个位置之前插入新的元素e,i的和法值为1<=i<=ListLength_Sq(L)+1
{
int *newbase,*p,*q;
if(i<1 || i>L->length+1)
{
return ERROR; //i值不合法
}
if(L->length>=L->listsize)//当前存储空间已满,增加分配
{
newbase=(int *)realloc(L->elem,(L->listsize+LISTINCREMENT)*sizeof(int));
if(!newbase)
{
exit(OVERFLOW);//存储分配失败
}
L->elem=newbase; //新基址
L->listsize+=LISTINCREMENT;
}
q=&(L->elem[i-1]); //q为插入位置
for(p=&(L->elem[L->length-1]);p>=q;--p)//插入位置及之后的元素右移
{
*(p+1)=*p;
}
*q=e; //插入e
++L->length; //表长增1
return OK;
}
int ListLength_Sq(Sqlist *L)
{
return L->length;
}
eTouX 2010-04-18
  • 打赏
  • 举报
回复
c中数组怎么可以动态呢?
不过我想可以用这样的方法实现,花了一个数组,凡是系数为0的就给这个元素赋值为0,不过这样会浪费很大的空间。
不过c中数组是不能动态划分的。
东大坡居士 2010-04-18
  • 打赏
  • 举报
回复
数组也可以实现静态链表,可以用数组做链表实现
昵称很不好取 2010-04-18
  • 打赏
  • 举报
回复
用数组实现栈,按一元多项式的参数信息进行入栈和出栈~~
ForestDB 2010-04-18
  • 打赏
  • 举报
回复
帮顶。

70,037

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧