#include <stdio.h>
#include <stdlib.h>
#include "PublicDS.h"
#include<Windows.h> typedef struct stack{
int top = -1;
int maxSize = 100;
//用于存放二进制位
int *data = (int *)malloc(100 * sizeof(int));
int pop(){
if (!isEmpty())
return data[top--]; }
void push(int n){
if (!isFull())
data[++top] = n;
}
bool isEmpty(){
return top < 0;
}
bool isFull(){
return top >= maxSize;
}
} stack;
int ReadData(FILE *, int *&);
void WriteData(FILE *, int *, int); void main(){
int *data;
FILE *fin, *fout;
fin = fopen("input.txt", "r");
fout = fopen("output.txt", "w");
MALLOC(data, 100 * sizeof(int), int *);
int tmp = ReadData(fin, data);
WriteData(fout, data, tmp);
FREE(data);
fclose(fin);
fclose(fout);
system("pause");
}
int ReadData(FILE *fin, int * &data){
int i = 1;
int n = 0;
int tmp;
while (!feof(fin)){
fscanf(fin, "%d", &tmp);
if (tmp != -1){
data[n++] = tmp;
// printf("%d\n", tmp);
if (n % 100 == 0){
int *p = (int *)realloc(data, 100 * (++i)*sizeof(int));
if (!p){
printf("error");
MessageBox(GetActiveWindow(), L"1", L"2", MB_OK);
}
else{
data = p;
// free(p);
// p = NULL;
}
}
}
} return n;
}
void WriteData(FILE *fout, int *data, int n)
{ for (int i = 0; i < n; i++)
{
fprintf(fout, "%8d--->", data[i]);
stack sc;
while (data[i] / 2 != 0)
{
sc.push(data[i] % 2);
data[i] /= 2;
}
sc.push(data[i]);
for (int j = 0; j <= sc.top;){
fprintf(fout, "%d", sc.pop());
}
fprintf(fout, "\n");
}
// printf("%d\n", n);
}

  

c数据结构学习随笔的更多相关文章

  1. javascript/js实现 排序二叉树数据结构 学习随笔

    二叉树是一种数据结构.其特点是: 1.由一系列节点组成,具有层级结构.每个节点的特性包含有节点值.关系指针.节点之间存在对应关系. 2.树中存在一个没有父节点的节点,叫做根节点.树的末尾存在一系列没有 ...

  2. 算法设计和数据结构学习_5(BST&AVL&红黑树简单介绍)

    前言: 节主要是给出BST,AVL和红黑树的C++代码,方便自己以后的查阅,其代码依旧是data structures and algorithm analysis in c++ (second ed ...

  3. (转) 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

    特别棒的一篇文章,仍不住转一下,留着以后需要时阅读 基于Theano的深度学习(Deep Learning)框架Keras学习随笔-01-FAQ

  4. 数据结构学习之字符串匹配算法(BF||KMP)

    数据结构学习之字符串匹配算法(BF||KMP) 0x1 实验目的 ​ 通过实验深入了解字符串常用的匹配算法(BF暴力匹配.KMP.优化KMP算法)思想. 0x2 实验要求 ​ 编写出BF暴力匹配.KM ...

  5. 数据结构学习之栈求解n皇后问题

    数据结构学习之栈求解n皇后问题 0x1 目的 ​ 深入掌握栈应用的算法和设计 0x2 内容 ​ 编写一个程序exp3-8.cpp求解n皇后问题. 0x3 问题描述 即在n×n的方格棋盘上,放置n个皇后 ...

  6. C#程序集Assembly学习随笔(第一版)_AX

    ①什么是程序集?可以把程序集简单理解为你的.NET项目在编译后生成的*.exe或*.dll文件.嗯,这个确实简单了些,但我是这么理解的.详细:http://blog.csdn.net/sws8327/ ...

  7. Hive入门学习随笔(一)

    Hive入门学习随笔(一) ===什么是Hive? 它可以来保存我们的数据,Hive的数据仓库与传统意义上的数据仓库还有区别. Hive跟传统方式是不一样的,Hive是建立在Hadoop HDFS基础 ...

  8. JavaScript ES6 数组新方法 学习随笔

    JavaScript ES6 数组新方法 学习随笔 新建数组 var arr = [1, 2, 2, 3, 4] includes 方法 includes 查找数组有无该参数 有返回true var ...

  9. 64位BASM学习随笔(一)

     64位BASM学习随笔(一) Delphi的BASM一直是我最喜爱的内嵌汇编语言,同C/C++的内联汇编相比,它更方便,更具灵活性,由于C/C++的内联汇编仅仅能是或插入式的汇编代码,函数花括号 ...

随机推荐

  1. 在windows server里,对于同一个账号,禁止或允许多个用户使用该账户,同时登录

    开始 -> 运行 -> gpedit.msc -> 本地计算机 策略 -> 计算机配置 -> 管理模板 -> Windows 组件 -> 远程桌面服务 -&g ...

  2. webBrowser 参数设置

    //禁用脚本错误等类似的窗口信息 this.webBrowser1.ScriptErrorsSuppressed = true; //禁用右键菜单 this.webBrowser1.IsWebBrow ...

  3. Xamarin移动跨平台解决方案是如何工作

    Xamarin移动跨平台解决方案是如何工作的? 概述 上一篇 C#移动跨平台开发(1)环境准备发布之后不久,无独有偶,微软宣布了开放.NET框架源代码并且会为Windows.Mac和Linux开发一个 ...

  4. Java集合之ArrayList源码分析

    1.简介 List在数据结构中表现为是线性表的方式,其元素以线性方式存储,集合中允许存放重复的对象,List接口主要的实现类有ArrayList和LinkedList.Java中分别提供了这两种结构的 ...

  5. leetcode第23题--Swap Nodes in Pairs

    Problem: Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1 ...

  6. Rails当你运行一个数据库回滚错误:ActiveRecord::IrreversibleMigration exception

    最近rails3.2在更改数据库表字段,然后要回滚取消,但在运行rake db:rollback命令,错误: rake aborted! An error has occurred, all late ...

  7. javascript 学习总结(一)

    1.字符转换 var s1 = "01"; var s2 = "1.1"; var s3 = "z";//字母'z'无法转换为数字,所以或返 ...

  8. Android 发展 ------------- Unable to resolve target &#39;android-19&#39;

    又一次装完Ecplise+ATD+Android SDK 在Ecplise工作空间导入之前写过的Android项目会出现错误,大部分是SDK 版本号不符,例如以下错误提示: Error:Unable ...

  9. Hypeiron Planning/Essbase修改规划类型名称

    1.修改planning关系库 1.1--修改Plan_type,例如将type_name “Plan1”修改为”Plan1ts”,提交 SELECT * FROM hsp_plan_type FOR ...

  10. [转]理解C# 4 dynamic(1) - var, object, dynamic的区别以及dynamic的使用

    阅读目录: 一. 为什么是它们三个 二. 能够任意赋值的原因 三. dynamic的用法 四. 使用dynamic的注意事项 一. 为什么是它们三个? 拿这三者比较的原因是它们在使用的时候非常相似.你 ...