摘要:
1.init()时一定要记得malloc()申请新的内存空间(如果不申请内存空间程序返回的值是有内存里的脏数据,把人看得云里雾里找不到问题出在哪) 2.带头结点单链表尾插法要注意:若LNode *p = L->next; 循环条件是while(p != NULL){p = p->next;},那么最 阅读全文
摘要:
写在前边:栈、队列都是线性表,都可以用顺序表、单链表实现。 一、顺序表实现栈: 1.入栈时需要判断栈满、出栈时需要判断栈空(链栈不需要处理这一点) 2.根据init()时s.top栈顶指针等于1、等于0的不同,在入栈、出栈时对于“元素操作、栈顶指针移动”的操作顺序也不同(链栈不需要处理这一点) 二、 阅读全文
摘要:
单链表实现栈、队列: 1.单链表实现的栈/队列也可以细分为不带头结点的单链表实现、带头结点的单链表实现,这两种细分对栈/队列的实现是大同小异的。 2.单链表实现栈的思想:入栈就是单链表的头插法,出栈就在单链表表尾出栈 3.单链表实现队列的思想:定义结点、定义*front、*rear指针,入队相当于在 阅读全文
摘要:
栈:一种线性表,特点是后进先出。因为是顺序表,所以可以用顺序表、链表实现。 ->顺序栈:顺序表实现的栈 ->链栈:单链表实现的栈,入栈=单链表的头插法,出栈=单链表依次删除表头后的元素。因为是单链表实现,所以也分为有头结点的单链表实现的链栈、无头结点的单链表实现的链栈 注意: 初始化栈时如果将栈顶指 阅读全文
摘要:
写在前边:单链表都有头指针,不一定有头结点;有无头结点的单链表,定义时数据类型都一样,只是初始化时、插入、删除时不同。 一、带头结点的单链表 头结点:为方便编写代码而设置的头结点。存储结构:L->头结点->a1->a2->NULL,头结点不存储数据(补充:在链队中,front指针可以看作头结点(例如 阅读全文
摘要:
算法思想: 1.遍历顺序表、移动元素(把未匹配到目标数据的元素前移i-k个位置) int k =0;int i =0; k用来计数,i用来扫描顺序表。 当匹配到目标元素时k++,未匹配到目标元素时就i++遍历,并且要将未匹配到的元素前移i-k个位置。 2.修改顺序表的length为length-k 阅读全文
摘要:
写在前边:单链表: 1.带头结点的单链表:L头指针->头结点(data域不存数据元素,只指向下一个元素)->a1->a2->..->NULL 2.不带头结点的单链表:L头指针->a1->a2...->NULL 以上两种区别在于:无头结点的单链表在进行插入/删除元素时要对i=1的情况做特殊处理 一、带 阅读全文
摘要:
1 /** 2 * Object通用方法:equals()、hashCode()、toString()、clone() 3 */ 4 @Data 5 @NoArgsConstructor 6 @AllArgsConstructor 7 public class objectMethodExample 阅读全文
摘要:
/** ioStream * 从传输方式上分为:字节流(InputStream、OutputStream)、字符流(Reader、Writer) * 从数据操作上分为:文件、数组、管道操作、基本数据类型、缓冲操作、打印、对象序列化反序列化、转换 * * 字节流读取单个字节、字符流读取单个字符 * 字 阅读全文
摘要:
一、线程之间的协作:join() class JoinExample{ private class A extends Thread{ @Override public void run(){ System.out.println("A"); } } private class B extends 阅读全文