随笔分类 -  数据结构

摘要:相爱相杀好基友——数组与链表作为线性表的两种存储方式 —— 链表和数组,这对相爱相杀的好基友有着各自的优缺点。接下来,我们梳理一下这两种方式。 数组,所有元素都连续的存储于一段内存中,且每个元素占用的内存大小相同。这使得数组具备了通过下标快速访问数据的能力。但连续存储的缺点也很明显,增加容量,增删元 阅读全文
posted @ 2021-07-27 20:09 狼太白 阅读(45) 评论(0) 推荐(0) 编辑
摘要:return 语句只能退出当前函数,如果多个函数嵌套就不行了,要想整个退出用exit。 return 0 代表程序正常退出,return 1代表程序异常退出!这个异常情况是返回给控制台的,不在你编的程序的控制范围内,是给操作系统识别的,对你的程序没有影响,程序会返回主调函数,继续执行。 其总结来说,return 关键字的作用是返回程序流程的控制权!其副作用是返回一个值。exit(0)是正常退出... 阅读全文
posted @ 2017-06-16 09:19 狼太白 阅读(241) 评论(0) 推荐(0) 编辑
摘要:#include<stdio.h>#include<stdlib.h>#include<string.h>#define OVERFLOW 0#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100 //存储空间初始分配量typedef struct 阅读全文
posted @ 2017-06-09 17:30 狼太白 阅读(3479) 评论(0) 推荐(1) 编辑
摘要:首先在写二叉树时遇到一个问题:scanf和输入缓冲区以及getchar和输入缓冲区之间关系 scanf是读入一个字符,而你在输入时实际上输入的是:某个字符+Enter,Enter 产生的\n 也会停留在输入缓冲区中,下次调用 scanf %c 时就会直接读到它而不是等待你再次输入! 对于这个问题找到 阅读全文
posted @ 2017-06-02 13:12 狼太白 阅读(2202) 评论(0) 推荐(0) 编辑
摘要:删除表中第i个元素 头结点及尾结点指针域的变化 查找过程中循环条件的变化 删除元素过程中的指针运算 如图: 程序; #include<stdio.h>#include<stdlib.h>#define OK 1#define ERROR 0#define OVERFLOW 0typedef stru 阅读全文
posted @ 2017-05-30 16:17 狼太白 阅读(1582) 评论(0) 推荐(0) 编辑
摘要:在表中第i个元素之前插入一个元素。主要有三个方面: 头结点及尾结点指针域的变化 查找过程中循环条件的变化 插入元素过程中的指针运算 在表建好以后,调用GetElemP_DuL()函数查找第i个元素,返回第i个元素的地址,否则返回空指针。 如图: 程序: #include<stdio.h>#inclu 阅读全文
posted @ 2017-05-30 15:58 狼太白 阅读(1228) 评论(0) 推荐(0) 编辑
摘要:单链表的缺点是只能往前,不能后退,虽然有循环单链表,但后退的成本还是很高的,需要跑一圈。在这个时候呢,双向链表就应运而生了,再加上循环即双向循环 链表就更加不错了。所谓双向链表只不过是添加了一个指向前驱结点的指针,双向循环链表是将最后一个结点的后继指针指向头结点,这在遍历时很关键。 程序: #inc 阅读全文
posted @ 2017-05-30 11:48 狼太白 阅读(3026) 评论(0) 推荐(1) 编辑
摘要:要求:讲两个有序链表合并成一个有序链表,结果链表仍使用原来两个链表的存储空间,不占用其他存储空间,表中允许有重复的数据。 算法:(1)指针pa和pb初始化,分别指向连个链表La和Lb的第一个节点 (2)Lc的结点取值为La的头结点 (3)指针pc初始化,指向Lc的头结点 (4)当指针Pa和Pb均未达 阅读全文
posted @ 2017-05-29 18:10 狼太白 阅读(4949) 评论(0) 推荐(0) 编辑
摘要:将表的第i个节点删去: 如图: 代码: include<stdio.h>#include<stdlib.h>#define OK 1 #define ERROR 0#define OVERFLOW 0typedef struct LNode{ int data; struct LNode *next 阅读全文
posted @ 2017-05-25 16:34 狼太白 阅读(394) 评论(0) 推荐(0) 编辑
摘要:问题2:根据制定数据获取所在的位置 找到则返回值,不然返回0 算法: (1)从第一个结点起,依次与e相比较 (2)找到一个其值与e相等的数据元素,则返回其在链表中的“位置” 》这里循环条件是p不为空,以及p->data不等于e (3)如果查遍整个链表没有与e相等是元素,则返回0 代码: #inclu 阅读全文
posted @ 2017-05-25 14:52 狼太白 阅读(3901) 评论(0) 推荐(0) 编辑
摘要:问题1:查找是否存在第i个元素,若存在用e返回第i个元素的值。不然返回0 查找部分算法: (1)从第一个结点(L->next)顺链扫描,用指针指向当前扫描到的节点,p初值p=L->next (2)定义j作为计数器,累计当前扫描到的结点数,初值为1 (3)当p指向扫描到下一个节点时,计数器加1; (4 阅读全文
posted @ 2017-05-25 14:12 狼太白 阅读(720) 评论(0) 推荐(0) 编辑
摘要:刚接触 Visual Studio的时候大多数人会写个Hello World的程序试一下,有的人会发现执行结束后输出窗口会一闪而过,并没有出现Press any key to continue的字样。无论是在Visual Studio 2008、2010还是2012中都有这种情况出现,有些人可能会用 阅读全文
posted @ 2017-05-17 15:57 狼太白 阅读(269) 评论(0) 推荐(0) 编辑
摘要:问题1: 1.L.elem = (ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType));2.newbase = (ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType) 阅读全文
posted @ 2017-05-12 23:00 狼太白 阅读(22066) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示