选择排序(假设递增排序)
每次选取从当前结点到末尾结点中最小的一个与当前结点交换,每一轮固定一个元素位置。
时间复杂度O(n^2),空间复杂度O(1)。下面的示例代码以带头结点的链表为存储结构:
#include
#include
#define Elemtype double
struct Node
{
Elemtype data;
struct Node *next;
};
void...
分类:
编程语言 时间:
2014-10-10 21:50:04
阅读次数:
225
描述:
链栈,即栈的链式存储结构,链栈通常使用不带头结点的单链表来表示,因此其结点的结构和单链表的结点结构相同。
在一个链栈中,栈底就是链表的最后一个结点,而栈顶总是链表的第一个结点。因此,新入栈的元素即为链表中采用头插法新加入的结点,一个链栈可以由栈顶指针唯一确定,当top为NULL时,则表示该栈是一个空的链栈。
实现:
...
分类:
其他好文 时间:
2014-09-21 01:13:09
阅读次数:
234
分别以两个(带头结点的)循环有序链表表示集合A和B,完成这两个集合并集的操作:代码如下:#includetypedef struct LNode { int data ; struct LNode *next ;}LNode , *LinkList ;void union_OL(L...
分类:
其他好文 时间:
2014-07-16 19:26:37
阅读次数:
211
将线性表以带头结点的单链表作存储结构,偶数放前,奇数放后;代码如下:#includetypedef struct LNode { int data ; struct LNode *next ;}LNode , *LinkList ;int main() { LinkList...
分类:
其他好文 时间:
2014-07-14 10:34:37
阅读次数:
189
C语言教材的有序单链表程序的插入我并不满意,因为链表为空,表尾等原因导致有四种情况要处理,给同学们的阅读造成困难。书上的做法较复杂的一个原因是链表是不带头结点的,所以要考虑新结点插入时会不会变成表头,例如:当链表为空时, 插入3, 3变成表头, 再插入1, 链表为1->3, 链表头指向1, 代码必须...
分类:
其他好文 时间:
2014-06-18 00:16:02
阅读次数:
181
#include using namespace std;struct Node{ Node
*next; int elem;};void creatList(Node* &head){ head = new Node; int elem;
cin>>elem; ...
分类:
其他好文 时间:
2014-06-09 16:07:55
阅读次数:
229
线性表
线性表分为链表和顺序表
链表按有无头结点分为有头结点链表和无头结点链表,按是否循环分为循环链表和非循环链表,按是否双向分为单向链表和双向链表
1。不带头结点非循环单链表
2.带头结点非循环单链表(头结点的值域是没有意义的)
3.不带头结点循环单链表
4.带头结点循环单链表(尾节点的下一个节点指向第一个值域有意义的节点)
5.不带头结点非循环双向...
分类:
其他好文 时间:
2014-06-01 13:00:46
阅读次数:
329
单链表的C语言描述基本运算的算法——置空表、求表的长度、取结点、定位运算、插入运算、删除运算、建立不带头结点的单链表(头插入法建表)、建立带头结点的单链表(尾插入法建表),输出带头结点的单链表#include#includeusing
namespace std;template class Lin...
分类:
编程语言 时间:
2014-05-19 11:55:01
阅读次数:
541
在这里实现了带头结点的链表,包含插入,删除,查询,清空链表一系列功能#includeusing
namespace std;class LinkList{ char *elem; LinkList *next; static int
length;public: LinkList(char *e) ...
分类:
其他好文 时间:
2014-05-15 18:05:31
阅读次数:
271
1、队列(建议采用带头结点的链式队列)
何时为空?答:当队列头指针等于尾指针时,队列为空。(对一般队列而言,循环队列除外) //不带头结点的链式队列 //不带头结点的链式队列#include
#include #include using namespace std; (出队操作) node1-->...
分类:
其他好文 时间:
2014-05-04 11:31:15
阅读次数:
335