长整数四则运算

2026/4/28 13:09:13

一 试验目的和要求 1. 实验目的

了解线性表的逻辑结构特性,熟练掌握线性表的链式存储结构,熟练掌握线性表在链式存储结构上实现基本操作:查找,插入,删除的算法。能在实际应用中选用适合的链表结构。加深对链表的本质了解。 2. 实验要求

利用双向链表实现长整数的存储,每个结点含一个整型变量。设计一个实现任意长的整数进行四则运算的演示程序。 二 实验环境萨大苏打sdasd

本程序可以在98/2000/XP下运行,可以用VC++6.0执行 三 程序的逻辑框图

双向链表的

初始化

主函数

输入任意长整数

调用双向链表基

本操作函数

长整数求值及结

果显示

END

四, 程序源代码 /*list.h*/

#include #include #include #include #define TRUE 1 #define FALSE 0 #define OK 1 #define ERROR 0

#define INFEASLBLE -1 #define OVERFLOW -2

typedef int Status; typedef int ElemType;

typedef struct DuLNode { ElemType data;

struct DuLNode *prior,*next; }DuLNode,*DuLinkList;

//构造一个空的双向循环线性表,L为头结点 Status InitList_DuL(DuLinkList &L); //在L中确定第i个元素的位置指针p

DuLinkList GetElemP_DuL(DuLinkList L,int i);

//在带头结点的双链循环线性表L中第i个位置之前插入元素e , //i的合法值为1<=i<=ListLength_DuL(L)+1

Status ListInsert_DuL(DuLinkList &L,int i,ElemType e);

//删除带头结点的双链循环线性表L中第i个元素,i的合法值为1<=i<=ListLength_DuL(L) Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e);

//若L为空表,则返回TRUE,否则返回FALSE bool ListEmpty_DuL(DuLinkList L);

//线性表L已存在,返回L中数据元素个数 Status ListLength_DuL(DuLinkList L); //若线性表L已存在,将L置为空表 Status ClearList_DuL(DuLinkList &L); //销毁线性表L

Status DestroyList_DuL(DuLinkList &L); //用e返回L中第i个数据元素的值

void GetElem_DuL(DuLinkList L,int i,ElemType &e); //返回双向循环链表L中e出现的次数 int Counter_DuL(DuLinkList L,ElemType e);

//返回第n个e的在链表中位置 n的合法值为0<=n<=Counter_DuL( L,n) int Position_DuL(DuLinkList L,int n,ElemType e);

/*function.cpp*/ #include\

/**************************************************************************************************/

/****************************函数声明**************************************************************/

/**************************************************************************************************/

DuLinkList calculate(DuLinkList p,int*j,char *f,int *num,int k); void output(DuLinkList r);

DuLinkList Pack_Up(DuLinkList r); //整理链表r void exchange(DuLinkList &L,int &j);

DuLinkList read_r(); void operate(DuLinkList p);

void decride_d();

int counter(int a); //计算整数位数 int max(int *num,int k); //返回最大值

/*list.cpp*/ #include\

Status InitList_DuL(DuLinkList &L)

{//构造一个空的双向循环线性表,L为头结点 L=(DuLinkList)malloc(sizeof(DuLNode)); if(!L)exit(OVERFLOW); L->next=L; L->prior=L; return OK; }//InitList_DuL

DuLinkList GetElemP_DuL(DuLinkList L,int i) {//在L中确定第i个元素的位置指针p DuLinkList p; p=L; for(int j=0;jnext; return (p); }//GetElemP_DuL

Status ListInsert_DuL(DuLinkList &L,int i,ElemType e)

{//在带头结点的双链循环线性表L中第i个位置之后插入元素e , //i的合法值为0<=i DuLinkList s,p; if(i<0)return OVERFLOW; else { p=GetElemP_DuL(L,i); if(!(p)) return ERROR; s=(DuLinkList)malloc(sizeof(DuLNode)); if(!s)return ERROR; s->data=e; s->prior=p;s->next=p->next; p->next->prior=s;p->next=s; return OK; }

}//ListInsert_DuL

Status ListDelete_DuL(DuLinkList &L,int i,ElemType &e)

{//删除带头结点的双链循环线性表L中第i个元素,i的合法值为1<=i<=ListLength_DuL(L) DuLinkList p; if(!(p=GetElemP_DuL(L,i))||p==L) return ERROR; e=p->data; p->prior->next=p->next; p->next->prior=p->prior; free(p); return OK; }//ListDelete_DuL

bool ListEmpty_DuL(DuLinkList L)

{//若L为空表,则返回TRUE,否则返回FALSE if(L->prior==L->next)return TRUE; else return FALSE; }//listElemty_DuL


长整数四则运算.doc 将本文的Word文档下载到电脑
搜索更多关于: 长整数四则运算 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219