第1章 声明和初始化基本类型1.1 我该如何决定使用哪种整数类型?1.2 为什么不精确定义标准类型的大小?1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。
然后根据实际的机器环境把它们定义为int、short、long等类型。
这样看来,所有的问题都解决了,是吗?1.4 新的64位机上的64位类型是什么样的?指针声明1.5 这样的声明有什么问题?char*p1,p2;我在使用p2的时候报错了。
1.6 我想声明一个指针,并为它分配一些空间,但却不行。
这样的代码有什么问题?char*p;*p=malloc(10);声明风格1.7 怎样声明和定义全局变量和函数最好?1.8 如何在C中实现不透明(抽象)数据类型?1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量?存储类型1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗?1.11 extern在函数声明中是什么意思?1.12 关键字auto到底有什么用途?类型定义(typedef)1.13 对于用户定义类型,typedef和#define有什么区别?1.14 我似乎不能成功定义一个链表。
我试过typedefstruct{char*item;NODEPTRnext;}*NODEPTR;但是编译器报了错误信息。
难道在C语言中结构不能包含指向自己的指针吗?1.15 如何定义一对相互引用的结构?1.16 Struct{ }x1;和typedefstruct{ }x2;这两个声明有什么区别?1.17 “typedefint(*funcptr)();”是什么意思?const限定词1.18 我有这样一组声明:typedefchar*charp;constcharpp;为什么是p而不是它指向的字符为const?1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?constintn=5;inta[n];1.20 constchar*p、charconst*p和char*constp有什么区别?复杂的声明1.21 怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组?1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。
可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此往复,以至无穷。
数组大小1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组?1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小?声明问题1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。
*1.26 main的正确定义是什么?voidmain正确吗?1.27 我的编译器总在报函数原型不匹配的错误,可我觉得没什么问题。
这是为什么?1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么问题。
这是为什么?1.29 为什么我的编译器不允许我定义大数组,如doublearray[256][256]?命名空间1.30如何判断哪些标识符可以使用,哪些被保留了?初始化1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零?1.32 下面的代码为什么不能编译?intf(){chara[]="Hello,world!";}*1.33 下面的初始化有什么问题?编译器提示“invalidinitializers”或其他信息。
char*p=malloc(10);1.34 chara[]="stringliteral";和char*p="stringliteral";初始化有什么区别?当我向p[i]赋值的时候,我的程序崩溃了。
1.35 chara{[3]}="abc";是否合法?1.36 我总算弄清楚函数指针的声明方法了,但怎样才能初始化呢?1.37 能够初始化联合吗?第2章 结构、联合和枚举结构声明2.1 structx1{ };和typedefstruct{ }x2;有什么不同?2.2 这样的代码为什么不对?structx{ };xthestruct;2.3 结构可以包含指向自己的指针吗?2.4 在C语言中用什么方法实现抽象数据类型最好?*2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法?2.6 为什么声明externf(structx*p);给我报了一个晦涩
2024/1/19 18:27:15 18.8MB c语言
1
一、问题描述若要在n个城市之间建役通信网络,只福要架设n-1条级路即可.如何以最低的经济代价建设这个通信网,是一个网的最小生成树问题。
二、基本要求(1)利用克鲁斯卡尔算法求图的最小生成树。
(2)能实现教科书6.5节中定义的抽象数据类型MFSet.以此表示构造生成树过程中的连通分量。
(3)以文本形式输出生成树中各条边以及他们的权值.三、需求分析1、构造图结构。
2、利用克鲁斯卡尔算法求图的最小生成树。
3、完成生成树的输出。
2023/10/2 17:44:34 2KB 最小生成树问 克鲁斯卡尔算
1
《C语言接口与实现:创建可重用软件的技术》,原名《CInterfacesandImplementations:TechniquesforCreatingReusableSoftware》,作者:【美】DavidR.Hanson,翻译:傅蓉周鹏张昆琪权威,出版社:机械工业出版社,ISBN:7111130057,PDF格式,大小10MB。
内容简介:本书概念清晰、内容新颖、实例详尽,是一本有关设计、实现和有效使用c语言库函数,掌握创建可重用c语言软件模块技术的参考指南。
本书倡导基于接口的c语言设计理念及其实现技术,深入详细地描述了24个c语言接口及其实现。
  本书通过叙述如何用一种与语言无关的方法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的api,本书是一本针对c语言程序员的不可多得的好书,也是值得所有希望掌握可重用软件模块技术的读者阅读的参考书籍。
  关于如何设计、实现和有效使用库函数的指南少之又少(如果说还有的话)。
这本力作填补了这个空白。
它可以作为下一代软件的工具书.所有的c语言程序员都应该阅读。
  ——w.richardstevens  “我向每位专业c语言程序员推荐这本书。
c语言程序员们忽视书中所描述的各种技术已经太长时间了。
”  ——normanramsey,贝尔实验室研究员每一位程序员和软件项目经理必须掌握创建可重用软件模块的技术:可重用软件模块是构建大规模、可靠应用的基石。
与当前某些面向对象语言不同,c语言为创建可重用应用程序接口(applicationprogramminginterface,api)提供的语言和功能支持非常少。
尽管大多数c语言程序员在自己所编写的每一个应用程序中都使用api和实现api的库.但只有相当少的程序员可以创建和发布新的、可广泛使用的api。
本书阐述了如何用一种与语言无关的方法将接口的设计与实现独立开来,从而形成一种基于接口的设计途径来创建可重用的api。
书中提供大量实例具体说明这种方法。
作者详细描述了24个接口和它们的实现细节,有助于读者对这种设计方法的透彻理解。
本书具有如下特色:简洁明了的接口描述。
为对接口设计感兴趣的程序员提供了一个参考手册每一章接口的代码实现分析将帮助读者修改、扩充一个接口,或者设计相关接口深入探讨了“算法工程”:阐述如何将数据结构以及相关算法打包到可重用模块中24个api和8个实例程序的源代码都经过测试检查,每个程序都是按照”literate程序”的形式构成。
为源代码提供了全面完整的解释提供了非常少见的有关c语言编程技巧的文档记录可以方便地在http://www.cs.princeton.edu/software/cii/访问本书的所有源码目录:出版者的话专家指导委员会译者序前言第1章简介11.1literate程序21.2编程风格61.3效率7参考书目浅析9练习9第2章接口与实现112.1接口112.2实现132.3抽象数据类型152.4客户调用程序的责任172.5效率21参考书目浅析21练习22第3章原子253.1接口25.3.2实现26参考书目浅析31练习31第4章异常与断言334.1接口344.2实现384.3断言43参考书目浅析46练习46第5章内存管理495.1接口505.2产品级实现535.3校验实现55参考书目浅析62练习62第6章进一步内存管理656.1接口656.2实现67参考书目浅析72练习73第7章链表757.1接口757.2实现78参考书目浅析83练习83第8章表格858.1接口858.2例子:单词频率878.3实现92参考书目浅析98练习98第9章集合1019.1接口1019.2实例:交叉引用列表1039.3实现1099.3.1成员操作1109.3.2集合操作113参考书目浅析116练习116第10章动态数组11910.1接口11910.2实现122参考书目浅析124练习125第11章序列12711.1接口12711.2实现128参考书目浅析133练习133第12章环13512.1接口13512.2实现1
1
【作 者】王晓东编著【丛书名】普通高等教育“十一五”国家级规划教材【形态项】396【出版项】清华大学出版社,2009.09【ISBN号】978-7-302-20393-3/TP3【原书定价】34.80【参考文献格式】王晓东编著.数据结构STL框架.清华大学出版社,2009.09.本书以ACM和IEEE/CSComputingCurricula2005课程体系以及教育部计算机科学与技术教学指导委员会发布的“高等学校计算机科学与技术本科专业规范”中制定的关于数据结构和算法设计与分析的知识结构和体系为依据,以基本数据结构和抽象数据类型为知识单元而编写。
本书一个明显的特色是在STL(StandardTemplateLibrary)框架下描述数据结构的设计思想和实现方法,使读者循序渐进地理解数据抽象,面向对象设计方法和泛型算法设计三位一体的面向高层次的现代化软件设计风格。
全书共分16章,涵盖CC2005课程体系中有关算法与数据结构、知识结构和体系的重要内容,包括算法与数据结构引论、向量、双端队列、表、栈和队列、排序与选择、树、二叉搜索树、平衡搜索树、集合、映射、堆与优先队列、散列、并查集、图与相关算法。
2023/6/29 4:07:18 24.41MB 数据结构 STL 框架 王晓东
1
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就顺应的问题规模而论,大小由之。
2019/6/24 19:15:40 54.96MB c++ pdf 程序设计 谭浩强
1
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就顺应的问题规模而论,大小由之。
2019/6/24 19:15:40 54.96MB c++ pdf 程序设计 谭浩强
1
网络视频资源,如有侵权请留言/举报,资源过大上传乃是下载链接!!!!1.1.1线性表的逻辑结构1_10],r3`2t%j&?L&u(}2.1.2线性表的顺序存储结构_1_23.1.3线性表的链式存储结构_1_3_22h&A(D"j5F-i+I4N%S4.1.3线性表的链式存储结构1_3_1(C'z9h3~:v"q"k5.小结:顺序表和链表的比较与选择依据_1_46.章节总结及典型例题分析_1_57.2.1栈的类型定义_2_18.2.2栈的应用举例_2_2._)\%q6h*_6p!{9.2.3栈类型的实现_2_35X$M0sz0S&h7g:s10.2.4、2.5队列的类型定义及实现_2_40F.|1E$@,T/z2g7N(|,A11.2.6、2.7数组的类型定义、数组的顺序表示和实现_2_5'T*_$t*U5E'~:l'L%S&N7i5q12.2.8特殊矩阵的压缩存储_2_613.章节总结及典型例题分析_2_7*i1K%?#a:k+l;_C#Y/O14.3.1树的类型定义_3_1(I5J0P0o6}n15.3.2二叉树的类型定义_3_216.3.3二叉树的存储结构_3_3/X0p(f'd%|3p17.3.4遍历算法应用举例3_4_23f,WM;b5X+{)R9\#M:n/g18.3.4二叉树的遍历_3_4_1)c2Y+^*v"K2[:}2n"|19.3.5线索二叉树_3_520.3.6树和森林的表示法_3_6;a0?$C5K)|"K2[6t7}2i21.3.7树和森林的遍历_3_7+j4p(B5s6`"nN|3@22.3.8哈夫曼树和哈夫曼树编码_3_8'l)t*^(i*Y%a~.e,S-J23.章节总结及典型例题分析_3_9'j:?'j1u(u:q&y24.4.1抽象数据类型图的定义25.4.2图的存储表示!t)e!R(L3x"^:D*y-y26.4.3图的遍历'br0I;|4V-jt$y27.4.4最小生成树6Q9P3F.lJ/n28.4.5拓扑排序7Q1X(t!E,O)]4|/L29.4.6关键路径_4_66ce5N2D7B8d)D(n/v/~30.4.7两点之间的最短路径问题+u!d.o/s7b31.4.8章节总结及典型例题分析4S%p9G:}/s7w32.5.1静态查找表1gj8T7|"X.o#P&r.A33.5.2动态查找表p3c#L.[&y34.5.3散列表)n7y(K:K(o*H8E/_,}/S35.5.4字符串模式婚配6K2X(o[.C;|'F36.5.5章节总结及典型例题分析37.6.1排序的基本概念#s:J(L.W-X6Y#A#?!G1\1}38.6.2插入类排序*R"k'A3E5S:x39.6.3交换类排序法40.6.4选择类排序法41.6.5归并排序、6.6分配类排序5O'{1c+p1[:h2r)m42.6.7各种排序方法的综合比较5e8p%s*L$Y-P3G+K43.章节总结及典型例题分析
1
网络视频资源,如有侵权请留言/举报,资源过大上传乃是下载链接!!!!1.1.1线性表的逻辑结构1_10],r3`2t%j&?L&u(}2.1.2线性表的顺序存储结构_1_23.1.3线性表的链式存储结构_1_3_22h&A(D"j5F-i+I4N%S4.1.3线性表的链式存储结构1_3_1(C'z9h3~:v"q"k5.小结:顺序表和链表的比较与选择依据_1_46.章节总结及典型例题分析_1_57.2.1栈的类型定义_2_18.2.2栈的应用举例_2_2._)\%q6h*_6p!{9.2.3栈类型的实现_2_35X$M0sz0S&h7g:s10.2.4、2.5队列的类型定义及实现_2_40F.|1E$@,T/z2g7N(|,A11.2.6、2.7数组的类型定义、数组的顺序表示和实现_2_5'T*_$t*U5E'~:l'L%S&N7i5q12.2.8特殊矩阵的压缩存储_2_613.章节总结及典型例题分析_2_7*i1K%?#a:k+l;_C#Y/O14.3.1树的类型定义_3_1(I5J0P0o6}n15.3.2二叉树的类型定义_3_216.3.3二叉树的存储结构_3_3/X0p(f'd%|3p17.3.4遍历算法应用举例3_4_23f,WM;b5X+{)R9\#M:n/g18.3.4二叉树的遍历_3_4_1)c2Y+^*v"K2[:}2n"|19.3.5线索二叉树_3_520.3.6树和森林的表示法_3_6;a0?$C5K)|"K2[6t7}2i21.3.7树和森林的遍历_3_7+j4p(B5s6`"nN|3@22.3.8哈夫曼树和哈夫曼树编码_3_8'l)t*^(i*Y%a~.e,S-J23.章节总结及典型例题分析_3_9'j:?'j1u(u:q&y24.4.1抽象数据类型图的定义25.4.2图的存储表示!t)e!R(L3x"^:D*y-y26.4.3图的遍历'br0I;|4V-jt$y27.4.4最小生成树6Q9P3F.lJ/n28.4.5拓扑排序7Q1X(t!E,O)]4|/L29.4.6关键路径_4_66ce5N2D7B8d)D(n/v/~30.4.7两点之间的最短路径问题+u!d.o/s7b31.4.8章节总结及典型例题分析4S%p9G:}/s7w32.5.1静态查找表1gj8T7|"X.o#P&r.A33.5.2动态查找表p3c#L.[&y34.5.3散列表)n7y(K:K(o*H8E/_,}/S35.5.4字符串模式婚配6K2X(o[.C;|'F36.5.5章节总结及典型例题分析37.6.1排序的基本概念#s:J(L.W-X6Y#A#?!G1\1}38.6.2插入类排序*R"k'A3E5S:x39.6.3交换类排序法40.6.4选择类排序法41.6.5归并排序、6.6分配类排序5O'{1c+p1[:h2r)m42.6.7各种排序方法的综合比较5e8p%s*L$Y-P3G+K43.章节总结及典型例题分析
1
C++是C语言的继承,它既可以进行C语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。
C++擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而C++就顺应的问题规模而论,大小由之。
[1]C++不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。
2016/1/20 9:25:48 61KB c++
1
数据结构C++描述目录译者序前言第一部分预备知识第1章C++程序设计11.1引言11.2函数与参数21.2.1传值参数21.2.2模板函数31.2.3引用参数31.2.4常量引用参数41.2.5返回值41.2.6递归函数51.3动态存储分配91.3.1操作符new91.3.2一维数组91.3.3异常处理101.3.4操作符delete101.3.5二维数组101.4类131.4.1类Currency131.4.2使用不同的描述方法181.4.3操作符重载201.4.4引发异常221.4.5友元和保护类成员231.4.6增加#ifndef,#define和#endif语句241.5测试与调试241.5.1什么是测试241.5.2设计测试数据261.5.3调试281.6参考及推荐读物29第2章程序功能302.1引言302.2空间复杂性312.2.1空间复杂性的组成312.2.2举例352.3时间复杂性372.3.1时间复杂性的组成372.3.2操作计数372.3.3执行步数442.4渐进符号(O、健?、o)552.4.1大写O符号562.4.2椒?582.4.3符号592.4.4小写o符号602.4.5特性602.4.6复杂性分析举例612.5实际复杂性662.6功能测量682.6.1选择实例的大小692.6.2设计测试数据692.6.3进行实验692.7参考及推荐读物74第二部分数据结构第3章数据描述753.1引言753.2线性表763.3公式化描述773.3.1基本概念773.3.2异常类NoMem793.3.3操作793.3.4评价833.4链表描述863.4.1类ChainNode和Chain863.4.2操作883.4.3扩充类Chain913.4.4链表遍历器类923.4.5循环链表933.4.6与公式化描述方法的比较943.4.7双向链表953.4.8小结963.5间接寻址993.5.1基本概念993.5.2操作1003.6模拟指针1023.6.1SimSpace的操作1033.6.2采用模拟指针的链表1063.7描述方法的比较1103.8应用1113.8.1箱子排序1113.8.2基数排序1163.8.3等价类1173.8.4凸包1223.9参考及推荐读物127第4章数组和矩阵1284.1数组1284.1.1抽象数据类型1284.1.2C++数组1294.1.3行主映射和列主映射1294.1.4类Array1D1314.1.5类Array2D1334.2矩阵1374.2.1定义和操作1374.2.2类Matrix1384.3特殊矩阵1414.3.1定义和应用1414.3.2对角矩阵1434.3.3三对角矩阵1444.3.4三角矩阵1454.3.5对称矩阵1464.4稀疏矩阵1494.4.1基本概念1494.4.2数组描述1494.4.3链表描述154第5章堆栈1615.1抽象数据类型1615.2派生类和继承1625.3公式化描述1635.3.1Stack的效率1645.3.2自定义Stack1645.4链表描述1665.5应用1695.5.1括号匹配1695.5.2汉诺塔1705.5.3火车车厢重排1725.5.4开关盒布线1765.5.5离线等价类问题1785.5.6迷宫老鼠1805.6参考及推荐读物188第6章队列1896.1抽象
2021/11/11 22:02:18 11.24MB 数据结构 C++
1
共 23 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡