线性表的实现(二)(顺序表实现)——数据结构(严蔚敏C语言实现版)
在线性表的实现(一)(顺序表实现)的基础上添加了可以自动增加空间的功能,添加数据时,如果线性表空间已满,则自动增加3个存储空间
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123//main.c 主函数实现#pragma once#include "SeqList.h"#include <stdio.h>#include <stdlib.h>#include <malloc.h>#pragma warning(disable : 4996) int main() ...
线性表的实现(一)(顺序表实现)——数据结构(严蔚敏C语言实现版)
采用函数实现和声明分开,SeqList.h包含结构体声明和所有函数的声明,SeqList.c包含所有函数的实现,main.c主函数实现,代码在vs中测试运行通过,其中部分代码是假设存储的数中没有重复的数
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121//main.c 主函数实现#pragma once#include "SeqList.h"#include <stdio.h>#pragma warning(disable : 4996) int main(){ SeqList mylist ...
pragma once和ifndef用法和区别
为了避免同一个文件被include多次,C/C++中有两种方式,一种是#ifndef方式,
方式一:
1234#ifndef __SOMEFILE_H__#define __SOMEFILE_H__... ... // 一些声明语句#endif
方式二:
12#pragma once... ... // 一些声明语句
在能够支持这两种方式的编译器上,二者并没有太大的区别,但是两者仍然还是有一些细微的区别:
#ifndef的方式依赖于宏名字不能冲突,这不光可以保证同一个文件不会被包含多次,也能保证内容完全相同的两个文件不会被不小心同时包含。当然,缺点就是如果不同头文件的宏名不小心“撞车”,可能就会导致头文件明明存在,编译器却硬说找不到声明的状况
#pragma once则由编译器提供保证:同一个文件不会被包含多次。注意这里“同一个文件”是指物理上的一个文件,而不是指内容相同的两个文件。带来的好处 是,你不必再费劲想个宏名了,当然也就不会出现宏名碰撞引发的奇怪问题。对应的缺点就是如果某个头文件有多份拷贝,本方法不能保证他们不被重复包含。当 然,相比宏名碰撞引发的“找不到声明”的问题,重复包 ...
Ubuntu入门笔记
快捷键
打开终端:ctrl+alt+t
清屏:ctrl+l;
在终端退出锁定:ctrl+c
目录创建规则:
大小是256
不能包含特殊字符
见名知义
路径:是反应目录和文件的位置。
绝对路径:从根目录开始的路径;
相对路径:目标目录相对于当前目录的位置。
在计算机中一切皆文件。
Windows中通过扩展名区分文件,Linux可以通过颜色来区分,或通过命令 file 文件名。
Linux五种文件:
普通文件
目录文件
设备文件
管道文件
链接文件
文件权限:
r 读
w 写
x 执行
d rwx rwx rwx分三组:
d 文件类型为文件夹 (d文件夹,-普通文件,c硬件字符设备文件,b硬件块设备文件,s管道文件,l软链接文件)
第一组:文件的所属用户
第二组: 用户的所属组
第三组:其他用户
常用命令:
帮助命令:命令名 --help 或 man 命令名
快捷键:
tab键智能补全,按两下显示列表
上下键查看历史命令
通配符:
[*]匹配任意多个字符
[?]匹配一个字符
[a-z]区间法 匹配a-z的所有字符 只能确定一个字符
[abcde]穷举法 匹配abcde的所 ...
Git版本控制
集中式和分布式版本控制
git分布式,svn集中式
查看版本
1git --version
配置作者信息
全局设置
12git congig --global user.name "your name"git congig --global user.email "your email"
当前设置
12git congig user.name "your name"git congig user.email "your email"
git初始化,建立新仓库
1git init
克隆远端项目到本地
1git clone 项目网址
添加文件
1git add 文件名
查看状态
1git status
提交到仓库
1git commit -m "test1" //提交并备注test1
修改后再查看状态会有显示修改的文件
添加所有文件
1git addd .
忽略添加文件方法,新建.gitignore文件,编辑.gitignore文件写上忽略文 ...
Linux达人养成计划1
了解Linux内核版本;官网www.kernel.org ;
版本2.6.16,2为主版本,6为此版本,18为末版本;
开源软件:
apache
Nginx web服务器
开源软件特点:
使用自由,研究自由,散布改变自由
Linux应用领域:企业服务器,嵌入式应用;
在www.netcraft.com 可以查看网站服务器;
硬盘分区:在mbr文件系统中,只能有4个主分区,即使没有分这么多分区也会占用盘符,一般设置一个扩展分区,在扩展分区建立逻辑分区;
格式化的目的主要是写入文件系统;
数据块block,默认为4kb,存储的最小空间;
文件的id号innode,其他信息还有修改时间和权限;
对Linux写入文件系统两个步骤:分数据块,分区列表
硬件设备文件名:
SATA/USB硬盘 /dev/sd[a-p]
光驱 /dev/cdrom或/dev/hdc
打印机 25针 /dev/lp[0-2]
USB /dev/lp[0-15]
鼠标 ...
VS常用的技巧及快捷键
如果你想复制一整行代码,只需将光标移至该行,再使用组合键“Ctrl+C”来完成复制操作,而无需选择整行;
如果你想剪切一整行代码,只需将光标移至该行,再使用组合键“Ctrl+X”来完成剪切操作,而无需选择整行;
如果你想删除一整行代码,只需将光标移至该行,再使用组合键“Ctrl+L”来完成剪切操作,而无需选择整行;
向前/向后搜索:使用组合键“Ctrl+I”,键入待搜索文本(将光标移至搜索词输入框位置即可开始输入),键入搜索文本后,可以使用组合键“Ctrl+I”及“Ctrl+Shift+I”前后定位搜索结果,搜索结果会被高亮显示,要结束搜索,可以按“ESC”键或者点击查找框右侧的关闭按钮。
选择一个单词后,按组合键“Ctrl+F”也可调出查找框口,且搜索结果也会被高亮显示;
使用组合键“Shift+Alt+方向键(或鼠标)”即可完成框式选择。框式选择允许你同时对代码行和列进行选择,这对批量删除某些代码很方便的;
在光标所在行的上面或下面插入一行不用再到行首行尾按回车:组合键“Ctrl+Enter”:在当前行的上面插入一个空行,组合键“Ctrl+Shift+Enter”:在当前行的下面 ...
Vim基础
Vim基础操作
进入插入模式:i光标当前插入,a当前光标后插入,o向下增加一行插入,I行首插入,A行尾插入,O向上插入一行插入;
插入模式下:
ctrl+h 删除一个字符
ctrl+w删除一个单词
ctrl+u删除到行首
normal模式下:
ctrl+e向上一次滚动一行
ctrl+f向下翻页
ctrl+b向上翻页
ctrl+d向下翻半页
ctrl+u向上翻半页
k/j/l/l上下左右键;
ctrl+[或ctrl+c相当于按esc键;
gi快速返回到上次编辑位置;
w/W下个单词开头;
e/E下个单词结尾;
b/B上个单词开头;
关于word/WORD:不以/以空格为分割的单词;
f+一个字符:跳转该行到第一个匹配的字符,按,跳转到上个匹配字符,按;跳转到下个匹配的字符,F+一个字符则相反;
按0跳到行首,^跳到行首非空字符,$跳到行尾;
按{}()跳到以空行为分割的段首/段尾;
gg/G跳到文首/文尾;
nG跳到n行;
H/M/L跳到开头/中间/结尾;
ctrl+o快速返回上次编辑的地方;
zz把屏幕置 ...
Linux基础
常用命令
history 查看历史命令 ,可以方向键上下查看之前的命令;
ls (list)查看文件信息
-l 列表显示详细信息(快捷命令ll)
-a 显示隐藏文件或目录
-d 显示目录属性而不是内容
-h 显示大小以k,M显示
-R 递归显示子目录的内容
-lrt 按时间顺序排序
关于通配符
*代表任意多个字符
?代表一个字符
[a-z]代表a到z的所有字符中的一个字符
[abcde]代表abcde中的一个字符
绝对路径和相对路径
以"/" 开头的路径为绝对路径
不是以"/"开头的路径为相对路径
目录操作
cd --change dir 更改目录
打开用户家目录的几种方式
空/空格
~
/home/用户名
$HOME
tree
如果不存在需要安装
1sudo yum -y install tree
-C 以颜色区分文件
mkdir 创建目录
-p递归创建目录
rm 删除文件/目录
-r 递归删除子文件目录
-rf 强制删除
rmdir 删除目录
-p 检测到删除目录后上级目录为空 ...