ImageVerifierCode 换一换
格式:DOCX , 页数:184 ,大小:1.43MB ,
资源ID:16452689      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16452689.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机基础知识文档格式.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

计算机基础知识文档格式.docx

1、 j+) num += arrj;if(num = t)count+;for(int k = c; k k+)num -= arrk - c;num += arrk; 3.结构体定义的使用1)struct nodeint num;struct node *next;此时定义node结构体变量时,必须写成struct node *nod;2)typedef struct nodenode;此时定义node结构体变量时,可以写成node *nod;同时必须注意后面必须加上冒号,这是一个语句。二、字符串处理1.字符串的定义:1)char str1 = HelloWorld;/ 通过字符数组来定义字符

2、串,其实包含两个存储空间:1.首先是在栈去分配了一段存储空间,用来存储字符串;2.同时此常量字符串存储在静态数据区。2)char *str2 = / 通过字符指针来定义字符串,其也包含两个存储空间:1.首先是在栈上为指针分配存储空间,用来存放指针变量;2.同时常量字符串存储在静态数据区。3)#define str3 / 通过宏定义来定义字符串,等价于str3=2.字符串的输入:1)常规字串输入:采用scanf()函数实现输入操作:必须要取地址,将字符串存入地址中;其不能识别空格,tab等按键。2)带空格的字串输入采用gets()函数实现输入操作:可以识别空格和tab等按键;其变量只要是地址名字

3、即可,不要写成取地址的方式;由于scanf()输入字符串时默认空格作为结束符,故要输入带有空格的字符串时,采用以下格式:scanf(%n,str)。3.字符串的输出:1)常规字串输出printf(%s,ai);它的输出是从a中第i号字符开始输出,直到字符串结束符0输出结束。2)固定长度字串输出:须知字串长度,采用循环输出3)带空格字串输出:4.字符串作为参数传递:1)传递的是地址,数组也是一样,传递的是地址;2)对于结构体变量而言,要操作结构内部变量,必须根据地址来操作;3)操作数的位数最大为64位,故要实现结构体的单位操作,必须重新编写操作函数。5.字符串函数的使用:字符串函数大全见:附录1

4、:字符串函数大全1)将字符串转换成数值;实现方式一double atoi(int n,char* str)int len=n;double num=0;/定义变量时,一定要初始化for(int i=0;i0)ai+=m%10+m/=10;return a;char b11=0123456789int i=0;%d,&m);ai+=bm%10;6.字符串数组的操作在C+中string可以直接当做变量来处理;可以通过new stringn来申请器长度;3对于string字符串的传递可以跟变量的传递一样操作;4具体实现如下:int stringPrint(int num,const string s

5、tr)for(int i = 0; num;cout stri p = new stringnum; pi;stringPrint(num,p);delete p;/ 对于申请的连续地址空间释放时一定要注意三、数据结构1.数组1)数组定义:数组定义时,必须指定大小,从而编译器为其分配固定大小的内存空间,内存连续分配;2)数组初始化:最好为其初始化,如果没有初始化,其会保存垃圾数据;3)数组的输入:数组实现数据输入时,一般采用循环输入;4)数组的输出:输出一般也采用循环输出;5)数组作为参数传递:数组做参数,无法按值传递。这是由C/C+函数的实现机制决定的。传数组给一个函数,数组类型自动转换为指

6、针类型,因而传的实际是地址,因此对其进行操作时,可以对数组值进行修改。所以为了避免数组值的修改,应该使用const固定。下面三种函数声明完全等同:void func(const int array10)void func(const int array)void func(const int *array)2.链表1)定义:一种物理存储单元上非连续、非顺序的存储结构。2)优势:不定长,可以根据数据存储需要,不断添加和删除;存储空间不用连续。3)链表的一般操作:1)链表的创建:a.创建一个新节点nodenod=(node*)malloc(sizeof(node);nod-val=val;next

7、=NULL;/* 判断内存分配是否为空 */if(nod=NULL)b.头指针head,用于对单向链表的遍历,该地址指向链表的头部if(head=NULL)head=nod;c.位置指针p,保存指针位置p-next=nod;p=nod;2)链表的插入:a.对于单向链表,先从头开始遍历,找到要操作节点的前一个节点node* listInsert(node* head,int k)int i=2;node* p=NULL;node* nod=NULL;p=head;/* 输入查询节点数必须大于0 */if(knext;next=p-p-next=nod;3)链表的删除:node* listDele

8、te(node* head,int k)node* q=NULL;head=nod-free(p);/* 开始查询要删除的节点的前一个节点 */q=p-next=q-free(q);4)链表的打印:int listPrint(node* head)while(head!=NULL)%x-%d,head,head-val);head=head-5)链表的逆序打印递归实现int printList1(Node* head)if(head != NULL)if(head-next !printList1(head-next); head-val -0x head 堆栈实现int printList2

9、(Node* head)stack st;while(head !st.push(head);head = head-while(!st.empty() st.top()- st.top() head-next = prev;prev = head;head = next; return prev;4.要及时释放内存空间,malloc()和free()两个函数要配合使用。3.栈先进后出,限定只能在表的一端进行插入和删除操作的线性表;2)线性表分类:顺序线性表 (也就是用数组实现的,在内存中顺序排列,通过改变数组序号来实现压栈和出栈)a.定义一个结构体,保存栈的基本信息typedef struc

10、t sqStackint size;int* sp;int* top;sqStack;b.栈初始化,定义栈的大小和指针int stackInit(sqStack s)s-top=(int*)malloc(sizeof(int)*n);sp=s-top;c.压栈int push(sqStack* s,int val)sp+;d.出栈int pop(sqStack* s)int val=0;sp-;val=s-val;return val;链表 (主要是对链表表头进行操作)a.定义一个结构体,作为栈的节点int val;struct sqStack* next;b.栈初始化sqStack* sta

11、ckInit()sqStack* s;return s;sqStack* push(sqStack* s,int val)sqStack* nod=NULL;nod=(sqStack*)malloc(sizeof(sqStack);next=s;s=nod;sqStack* pop(sqStack* s)nod=s;s=s-free(nod);栈的实现:可以采用两种方式,可以分别采用顺序表或者链表实现。应用:a.四则运算b.符号检测4.队列先进先出,限定只能在表的一端进行插入和在另一端进行删除操作的线性表;2)队列的实现:3)应用:5.二叉树1)基本概念:定义:每个结点最多有两棵子树,左子树和

12、右子树,次序不可以颠倒性质:a.非空二叉树的第n层上至多有2(n-1)个元素b.深度为h的二叉树至多有2h-1个结点其他概念:a.满二叉树:b.完全二叉树:2)存储结构顺序存储:将数据结构存在一块固定的数组中#define LENGTH 100 typedef char datatype;typedef struct node datatype data;int lchild,rchild;int parent;Node;Node treeLENGTH;int length;int root;链式存储:typedef struct BinNodestruct BinNode* lchild;s

13、truct BinNode* rchild;BinNode;typedef BinNode* bintree;/bintree本身是个指向结点的指针3)二叉树的遍历前序遍历:根节点-左子树-右子树中序遍历:后序遍历:右子树-根节点4)遍历的实现二叉树的创建a.创建二叉树节点typedef struct BiTreechar chr;struct BiTree* lchild;struct BiTree* rchild;BiTree;b.创建二叉树BiTree* CreateBiTree()BiTree* T=NULL;%cchr);if(chr!= T=(BiTree*)malloc(size

14、of(BiTree);if(T=NULL)Memory is failed!n);T-chr=chr;lchild=CreateBiTree();rchild=CreateBiTree();return T;前序遍历int preOlderTraverse(BiTree* T)if(T),T-preOlderTraverse(T-lchild);rchild);中序遍历int inOlderTraverse(BiTree* T)inOlderTraverse(T-后序遍历int postOlderTraverse(BiTree* T)postOlderTraverse(T-非递归实现创建堆栈a

15、.创建节点BiTree* Bt;struct sqStack* sp;b.push()函数实现int push(sqStack* S,BiTree* Bt)sqStack* Stack=NULL;Stack=(sqStack*)malloc(sizeof(sqStack);if(Stack=NULL)Stack-Bt=Bt;Bt-lchild=Bt-lchild;rchild=Bt-rchild;sp=(*S);(*S)=Stack;c.pop()函数实现BiTree* pop(sqStack* S)BiTree* Bt=NULL;Bt=(*S)-Bt;Stack=(*S);(*S)=(*S)-sp;free(Stack);return Bt;#Memroy is failed!int preOlderVisitBiTree(sqStack* S,BiTree* T)if(!T)The BiTree is empty!while(T|S)while(T)push(&S,T);T=T-T=pop(&S);int inOlderVisitBiTree(sqStack* S,BiTree* T)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1