1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "PublicDS.h"
  4. #include<Windows.h>
  5.  
  6. typedef struct stack{
  7. int top = -1;
  8. int maxSize = 100;
  9. //用于存放二进制位
  10. int *data = (int *)malloc(100 * sizeof(int));
  11. int pop(){
  12. if (!isEmpty())
  13. return data[top--];
  14.  
  15. }
  16. void push(int n){
  17. if (!isFull())
  18. data[++top] = n;
  19. }
  20. bool isEmpty(){
  21. return top < 0;
  22. }
  23. bool isFull(){
  24. return top >= maxSize;
  25. }
  26. } stack;
  27. int ReadData(FILE *, int *&);
  28. void WriteData(FILE *, int *, int);
  29.  
  30. void main(){
  31. int *data;
  32. FILE *fin, *fout;
  33. fin = fopen("input.txt", "r");
  34. fout = fopen("output.txt", "w");
  35. MALLOC(data, 100 * sizeof(int), int *);
  36. int tmp = ReadData(fin, data);
  37. WriteData(fout, data, tmp);
  38. FREE(data);
  39. fclose(fin);
  40. fclose(fout);
  41. system("pause");
  42. }
  43. int ReadData(FILE *fin, int * &data){
  44. int i = 1;
  45. int n = 0;
  46. int tmp;
  47. while (!feof(fin)){
  48. fscanf(fin, "%d", &tmp);
  49. if (tmp != -1){
  50. data[n++] = tmp;
  51. // printf("%d\n", tmp);
  52. if (n % 100 == 0){
  53. int *p = (int *)realloc(data, 100 * (++i)*sizeof(int));
  54. if (!p){
  55. printf("error");
  56. MessageBox(GetActiveWindow(), L"1", L"2", MB_OK);
  57. }
  58. else{
  59. data = p;
  60. // free(p);
  61. // p = NULL;
  62. }
  63. }
  64. }
  65. }
  66.  
  67. return n;
  68. }
  69. void WriteData(FILE *fout, int *data, int n)
  70. {
  71.  
  72. for (int i = 0; i < n; i++)
  73. {
  74. fprintf(fout, "%8d--->", data[i]);
  75. stack sc;
  76. while (data[i] / 2 != 0)
  77. {
  78. sc.push(data[i] % 2);
  79. data[i] /= 2;
  80. }
  81. sc.push(data[i]);
  82. for (int j = 0; j <= sc.top;){
  83. fprintf(fout, "%d", sc.pop());
  84. }
  85. fprintf(fout, "\n");
  86. }
  87. // printf("%d\n", n);
  88. }

  

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. 移动应用跨平台框架江湖将现终结者?速来参拜来自Facebook的React Native

    React Native使用初探 February 06 2015 Facebook让所有React Conf的参与人员都可以初尝React Native的源码---一个编写原生移动应用的方法.该方法 ...

  2. EXCEL导入GridView,然后再汇入数据库.

    原文:EXCEL导入GridView,然后再汇入数据库. 近日项目中有一个多笔料号要输入,我做了一个用javascript复制输入框的功能,可以输入多笔料号. 但是使用者反馈,料号太多,可能几百个料号 ...

  3. location将地址栏参数拆分成键值对的对象

    window.location可获取地址栏的一系列信息,并且每个浏览器都支持该属性,非常方便.而获取到的问号后面的参数可以进行加工转变成我们所想要的键值对. location的属性: 属性名 例子 说 ...

  4. weblogic启动报错--com.octetstring.vde.backend.BackendRoot

    错误现象: 使用bea用户启动weblogic时报错,错误信息如下: <2014-7-29 下午07时47分23秒 CST> <Notice> <Log Manageme ...

  5. jquery 拖动DIV

    <html><head> <style type="text/css"> .show{ background:#7cd2f8; width:30 ...

  6. iScroll 4.2.5 中文API

    概况 资料来源 http://cubiq.org/iscroll-4 http://www.cnblogs.com/wanghun/archive/2012/10/17/2727416.html ht ...

  7. Mysql高级之主从复制

    原文:Mysql高级之主从复制 主从复制不就是多台服务器嘛!,一个改变另一个也改变啦,内容其实都一样! 原理: 对数据库进行操作会生成一个文件,binlog(二进制文件),从服务器配置relaylog ...

  8. {{angular.js 使用技巧}} - 实现计算列属性

    前端MV*框架现在有很多,其中某些框架有计算列(又叫监控属性),比如:微软推荐的 Knockout.js 和博客园司徒正美的 avalon.js 框架. 本人只使用过 Knockout.js,aval ...

  9. MVC中使用Unity Ioc Container

    ASP.NET MVC中使用Unity Ioc Container   写在前面 安装Unity 添加服务层 IArticleRepository类型映射 服务注入到控制器 Global.asax初始 ...

  10. .NET 类库研究

    .NET 类库研究必备参考 添加微软企业库源码 前不久,为大家提供了一个.NET 类库参考源码的网站,扣丁格鲁(谐音“coding guru”),使用了段时间,发现一些不方便的地方,特意做了一些更改, ...