资源简介
数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构
代码片段和文件信息
#include
#include
#include
#include
typedef struct Node {
struct Node* prev;
char c;
struct Node* next;
}Node;
typedef struct {
struct Node* head;//指向头结点的指针
struct Node* rear;//指向尾结点的指针
int count;
}List;
void insert_List(List* char);
void Delete_List(List*);
void Calculate(List* List* int);
void print(List* char);
void clear_high_zero(List*);
int main() {
char c1[1000] c2[1000] sign1 sign2;
List num1 num2;
int temp = 0;
int i j;
bool flag = true;
Node *temp1 *temp2;
//初始化头尾结点以及头尾结点的指针
num1.head = (Node *)malloc(sizeof(Node));
num2.head = (Node *)malloc(sizeof(Node));
num1.rear = num1.head;
num1.head->next = NULL;
num1.head->prev = NULL;
num1.count = 0;
num2.rear = num2.head;
num2.head->next = NULL;
num2.head->prev = NULL;
num2.count = 0;
scanf(“%s%s“ &c1 &c2);
for (i = 0; i if (c1[i]<‘0‘ || c1[i]>‘9‘)
continue;
insert_List(&num1 c1[i]);
}
for (j = 0; j if (c2[j]<‘0‘ || c2[j]>‘9‘)
continue;
insert_List(&num2 c2[j]);
}
//用sign来储存正负号
sign1 = c1[0];
sign2 = c2[0];
if (sign2 != ‘+‘&&sign2 != ‘-‘) {
sign2 = ‘+‘;
}
if (sign1 != ‘+‘&&sign1 != ‘-‘) {
sign1 = ‘+‘;
}
//同号时的处理
if (sign1 == sign2) {
if (num1.count > num2.count) {
Calculate(&num1 &num2 1);
clear_high_zero(&num1);
print(&num1 sign2);
}
else {
Calculate(&num2 &num1 1);
clear_high_zero(&num2);
print(&num2 sign2);
}
}
//异号时的处理
else {
if (num1.count > num2.count)
{
Calculate(&num1 &num2 -1);
clear_high_zero(&num1);
print(&num1 sign1);
}
else if(num1.count {
Calculate(&num2 &num1 -1);
clear_high_zero(&num2);
print(&num2 sign2);
}
//异号时还要特地去考虑两个数字长度相等时的问题
else {
flag = true;
//如果两个数字的长度相同,那么就把绝对值大的那个数放到
//Calculate()中的第一个参数中去
if (num1.count == num2.count) {
temp1 = num1.rear;
temp2 = num2.rear;
//一直比较,直到出现两个不一样的数字的时候传到下面的if中进行比较处理
while (temp1->c == temp2->c && (temp1 != num1.head || temp2 != num2.head)) {
temp1 = temp1->prev;
temp2 = temp2->prev;
}
if (temp1 != num1.head&&temp2 != num2.head) {
if (temp1->c > temp2->c)
flag = true;
else flag = false;
}
}
if (!flag) {
Calculate(&num2 &num1 -1);
clear_high_zero(&num2);
print(&num2 sign2);
}
else {
Calculate(&num1 &num2 -1);
clear_high_zero(&num1);
print(&num1 sign1);
}
}
}
}
//插入数字,倒置插入,指针head指向的永远是头结点,指针rear指向的永远是尾结点。
//数字在链表中的存储是倒序存储的例如当num1是1234时,
//实际上num1中的c的值的存储顺序是 空4321目的是为了方便后续的运算处理
//第一个结点的c值永远为空最后一个结点的next 的值始终为null
void insert_List(List *num char c) {
Node *p;
p = num->head->next;
num->head->next = (Node *)malloc(sizeof(Node));
num->head->next->c = c;
num->head->next->prev = num->head;
num->head->next->next = p;
if (p != NULL)
p->prev = num->head->nex
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5909 2017-12-03 00:08 shiyan2.cpp
文件 1719 2017-12-06 16:24 shiyan3_xiugai.cpp
文件 4510 2017-12-09 18:16 shiyan4_xiugai_ok.cpp
文件 4060 2017-12-09 21:27 shiyan5.c
文件 5054 2017-11-30 10:02 shiyan1_ok.cpp
----------- --------- ---------- ----- ----
21252 5
相关资源
- 石大远程在线考试——《数据结构课
- 数据结构课设拓扑排序源代码教学计
- 顺序结构、动态链表结构下的一元多
- 财贸双全二开资料,数据结构
- 南邮数据结构实验源码
- 数据结构迷宫,求解一条通路
- 杭电 数据结构 实验报告杭电适用
- 数据结构课程设计--汽车租赁
- 公交查询系统(C)数据结构
- unity 数据结构树的深度遍历
- 数据结构-利用栈求表达式的值
- 数据结构课程设计表达式求值
- 数据结构 栈 表达式求值
- b3dm格式数据结构说明
- 数据结构课程设计二叉树的非递归遍
- 约瑟夫环实习报告:编号为1,2……,
- 严蔚敏《数据结构》教材各章完整源
- 数据结构严慰民配套纯C代码数据结构
- 火车车厢重排列问题 堆栈解决
- 山东大学数据结构课设箱子装箱问题
- 数据结构课设——教学计划编制问题
- 北邮数据结构实验代码及报告
- 数据结构课程设计报告电表计费系统
- 南昌航空大学数据结构试验代码
- 2014燕山大学数据结构平时实验报告
- 二叉树三种遍历动画演示
- 数据结构课程设计建立词索引表
- 数据结构做的员工管理系统
- 校园网布线方案数据结构课程设计
- 数据结构 简单的目录管理系统
评论
共有 条评论