摘要:
因为项目中要在Java中调用C++编好的代码,即用eclipse调用动态链接库,故花了点时间研究在eclipse中使用JNI。 有时候因为Java本身特性的限制,单独使用Java语言可能不能完全满足应用程序的需要,这时需要使用JNI(JavaNative Interface)来编写Java本... 阅读全文
摘要:
一、栈的定义 从数据结构角度看,栈也是线性表,其特殊性在于栈的基本操作都是线性操作的子集,它是操作受限的线性表。 栈(stack)是限定仅在表尾进行插入或删除操作的线性表。 栈一般分为两种: 静态栈:用数组实现; 动态栈:用链表实现。 一般用的比较多的都是动态栈。如果学会了链表,其实对栈的操作就比较 阅读全文
摘要:
静态链表便于在不设指针类型的高级语言使用链表结构,静态链表用数组描述,数组的一个分量表示一个结点,同时用游标(指示器cur)代替指针来表示结点在数组中的相对位置。 另外我们对数组第一个和最后一个元素作为特殊元素处理,不存数据。数组的第一个元素,即下标为0的元素的cur存放备用链表的第一个结点的下标, 阅读全文
摘要:
从数据结构的角度看,栈和队列也是线性表,其特殊性在于栈和队列的基本操作是线性表操作的子集,它们是操作受限的线性表; 但从数据类型角度来看,它们是和线性表大不相同的两种重要的抽象数据类型。 顺序栈,即栈的顺序存储结构是用一组地址连续的存储单元依次存放自栈顶到栈顶的数据元素 typedef struct 阅读全文
摘要:
一、队列的定义 队列(queue)是一种先进先出的线性表。它只允许在表的一端进行插入,而在另一端删除元素。 允许插入的一端叫做队尾(rear),允许删除的一端则称为对头(front)。 队列一般也分为两种: 链式队列:用链表实现; 静态队列:用数组实现(静态队列通常都必须是循环队列)。 一般用循... 阅读全文
摘要:
一、非循环单链表插入节点伪算法 如上图所示,已知有一链表,要想在p所指向的节点的后面插入一个新的节点q,则有两种方法: 伪算法一: t = p->pNext;p->pNext = q;q->pNext = t;伪算法二: q->pNext = p->pNext;p->pNext = q;二... 阅读全文
摘要:
直接贴程序: /* 2016年9月12日15:00:49 对动态数组的操作与算法*/#include#include //malloc函数在此头文件#include //使用exit函数需要此头文件struct Array{ int len; //数组的长度 int cnt; ... 阅读全文
摘要:
一、数组与链表的比较 数组: 优点:存取速度快 缺点:需要一个连续的很大的内心 插入和删除元素的效率很低 链表: 优点:插入删除元素效率高 不需要一个连续的很大的内存 缺点:查找某个位置的元素效率低 二、链表的结构 首节点:存放第一个有效数据的节点 尾节... 阅读全文
摘要:
冒泡排序比较简单,直接贴程序: /* 2016年9月6日22:17:07 冒泡排序*/#include void sort_1(int * pArr, int len) //方法一{ int i, j, t; for(i = 0; i pArr[j+1]) //从小到大排序 ... 阅读全文
摘要:
一、动态数组 /* 2016年9月4日21:08:23 动态数组*/#include#includeint main(void){ int a[5]; //静态数组 int len; int i; printf("请输入动态数组的长度:"); scanf("%d", &len); int ... 阅读全文