链表(C语言数据结构)
来源:互联网 发布:博客游戏网站源码 编辑:程序博客网 时间:2024/05/13 16:02
用链表实现两个多项式的运算
而且还要使用前插法构成链表
我自已做了一个,但运行不出来
能帮忙看一下吗?
代码如下
#include<stdio.h>
#include<malloc.h>
#include<conio.h>
#define ERROR 0
#define OK 1
#define EQUAL 1
#define OVERFLOW -1
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
struct POLY{
int coef;
int expn;
};
typedef struct POLY ElemType;
struct LNODE
{
ElemType data;
struct LNODE *next;
};
typedef struct LNODE LNode;
typedef struct LNODE *Linklist;
int init(Linklist *L)
{
*L=(LNode*)malloc(sizeof(LNode));
if(!L)exit(OVERFLOW);
(*L)->next=NULL;
return OK;
}/*init*/
int EqualList(ElemType *e1,ElemType *e2)
{
if(strcmp(e1->expn,e2->expn)==0)
return 1;
else
return 0;
}
int Less_EqualList(ElemType *e1,ElemType *e2)
{
if(strcmp(e1->expn,e2->expn)<=0)
return 1;
else
return 0;
}
int printlist(Linklist L)
{
Linklist p;
p=L;
printf("coef expn/n");
while(p->next)
{
p=p->next;
printf("%d %d/n",p->data.coef, p->data.expn);
}
printf("/n");
}
int ListInsert(Linklist L,int i,ElemType e)//前插法
{ int j=0;
Linklist p,s;
p=L;
j=0;
while(p&&j<i-1)
{ p=p->next;
++j;
}
if(!p||j>i-1)return ERROR;
s=(Linklist)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;return OK;
}
void AddList(Linklist a,Linklist b,Linklist *c)//这是多项式相加。
{Linklist pa, pb, pc;
c=(LNode)malloc(sizeof(LNode));
pa=a->next;pb=b->next;pc=*c;
while(!pa&&!pb){
if(EqualList(&pa->data,&pb->data))
{pc->data.coef=pa->data.coef+pb->data.coef;}
if(pc->data.coef==0)
{pa++;pb++;}
else{pc=pc->next;pa++;pb++;}
}
else(Less_EqualList(&pa->data,&pb->data))
{
pc->next=pa;pc=pc->next;pa++;}
else(Less_EqualList(&pb->data,&pa->data))
{pc->next=pb;
pc=pc->next;
pb++;
}
}
while(!pa) {pc->next=pa;pc=pc->next;pa++;}
while(!pb) {pc->next=pb;pc=pc->next;pb++;}
}
main()
{ struct POLY e;
Linklist La,Lb,Lc;
clrscr();
printf("/n/n--------List Demo is running...------/n/n");
printf("First is InsertList function./n");
init(&La);
e.coef=7;
e.expn=0;
ListInsert(La,1,e);
e.coef=3;
e.expn=1;
ListInsert(La,2,e);
printlist(La);
getch();
init(&Lb);
e.coef=8;
e.expn=1;
ListInsert(Lb,1,e);
e.coef=22;
e.expn=7;
ListInsert(Lb,2,e);
printlist(Lb);
AddList(La,Lb,&Lc);
printlist(Lc);
getch();
}
希望懂的能给我一点建议和理解
我将不胜感激
- 链表(C语言数据结构)
- C语言数据结构----链表
- 数据结构(C语言)
- C语言高级篇(数据结构) --- 链表
- 数据结构_2:链表:C语言
- 复习(数据结构):链表:c语言
- 目录(数据结构C语言)
- C语言数据结构--(单链表)
- 数据结构(C语言描述)
- 哈夫曼树 (c语言)数据结构
- 数据结构(二)——链表(C语言实现)
- C语言数据结构----链表(静态链表)
- c语言数据结构原型与实例分析(数组,链表)
- 数据结构_2:链表:C语言练习
- 数据结构(C语言):链表,约瑟夫问题
- 数据结构读书笔记(一)(C语言)
- 数据结构读书笔记(二)(C语言)
- 数据结构读书笔记(三)(C语言)
- mkfifo函数使用
- 让工作更有点趣味
- 弹出对话窗体
- 狮子王国玩法
- 使用XmlLite+WinHttp下载RSS
- 链表(C语言数据结构)
- 如何追A型女友
- 一个用Java实现的简单的最大堆
- PHP 碰上 Python
- Symbian os制作sis文件
- 基于Web的IM简介
- windows环境下python web开发环境安装配置
- 介绍Python程序员常用的IDE和其它开发工具
- Spring中常用的hql查询方法(getHibernateTemplate())