Data Structure
qinxd8523
这个作者很懒,什么都没留下…
展开
-
栈的C语言实现
栈数据结构一般有三个属性, stackItem *bottom; 栈底指针 stackItem *top; 栈顶指针(一般指向栈顶元素的下一个位置) int stackLength; 最大栈元素个数(分配栈空间使用)栈包含init,push,pop,destroy,getTop等几个操作1、init过程 这个过程是建立空栈的过程,这里给栈底指针分配内存,然后使栈顶指针也指向这个地址,这样就建立了一个空栈。这同时也暗示,如果判断一个栈是否为空原创 2010-12-17 15:39:00 · 2729 阅读 · 3 评论 -
双向链表的C实现
双向链表需要定义一个结构体,结构体有3个属性typedef struct __Node{ int data; 数据 struct __Node *pre; 指向前一个结点指针 struct __Node *next; 指向下一个结点指针}Node;其中 pre和next指针式嵌套定义。一般链表定义一个头指针Node *head;指向链表第一个结点,如果链表为空的话,那么head == NULL。双向链表一般分为init,insert, delete, se原创 2010-12-20 22:37:00 · 18525 阅读 · 7 评论 -
链栈的C实现
可以用链表的思路来实现栈,这里采用双向链表的结点写法,即含有2个指针域:typedef struct __Node{ int data; 数据 struct __Node *pre; 指向前一个元素 struct __Node *next; 指向下一个元素}Node;栈只有两个属性,typedef struct __LinkedListStack{ Node *bottom; 栈底指针,指向栈底元素 Node *top; 栈原创 2010-12-21 15:08:00 · 748 阅读 · 0 评论 -
链队列的C实现
队列是先进先出(FIFO),栈是先进后出(FILO),用线性链表来实现队列,思路和实现链栈类似,可以参阅:链栈的C实现下面是代码:#include #include typedef struct __Node{ int data; struct __Node *pre; struct __Node *next;}Node;typedef struct __queue{ Node *head; Node *tail;}queue;void init(queue *Q原创 2010-12-21 15:17:00 · 365 阅读 · 0 评论 -
二叉查找树的C实现
#include #include typedef struct __Node{ int key; struct __Node *parent; struct __Node *left; struct __Node *right;}Node;typedef struct __BinarySearchTree{ Node *Root;}BinarySearchTree;void InitTree(BinarySearchTree *T){ T->Root =原创 2010-12-26 22:51:00 · 300 阅读 · 0 评论