资源简介
数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构数据结构

代码片段和文件信息
#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
相关资源
- 数据结构年终考题范围和答案 耿国华
- 数据结构 朱战力 习题解答 数据结构
- 数据结构课程设计 6 1 彩票系统
- 教学计划编制系统
- 大数(链表、数组)实现
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- 航空订票系统_数据结构课程设计
- 多项式求和(数据结构C 版)
- 尚观培训linux董亮老师关于数据结构的
- 数据结构 知识点总结
- 华南理工大学数据结构复习提纲二
- 华南理工大学数据结构复习提纲一
- 数据结构用C 写的停车场系统源代码
- 数据结构(河北科技大学)
- 数据结构考前习题 清华大学出版社
- 数据结构课件(北邮)
- 数据结构实验 基于栈的表达式求值
- 数据结构课程设计——图书管理系统
- 成绩管理系统(数据结构)
- 数据结构-最小通信网问题
- 数据结构课程设计同学通讯录系统
- 数据结构课程设计 公园导游图
- 数据结构殷人昆版的课后答案
- 2006年湖北工业大学409数据结构试题
- 数据结构实验-魔王语言-源码加实验报
- 简单计算器的实现(数据结构)
- 简单计算器的实现(数据结构 修正版
- Fundamentals of Data Structure in C
- 北京邮电大学数据结构历年考研真题
评论
共有 条评论