基本数据结构
gundanseed
学无止境
展开
-
C语言数组实现栈的基本操作,并利用O(1)求出栈中最小元素
#include #include #include #define MAX_STACK_SIZE 80typedef struct{ unsigned int stack[MAX_STACK_SIZE]; int top; //top 默认值是-1,所以应该是int型 unsigned int down_min[MAX_STACK_SIZE]; }sequence_sta原创 2013-11-09 11:19:18 · 1382 阅读 · 0 评论 -
C语言二叉树遍历操作
#include #include #include #define MAX_TREE_SIZE 80typedef struct bit_tree_node{ unsigned int num; struct bit_tree_node *lchild,*rchild;}tree_node,*bit_tree;unsigned int create_tree(bit_t原创 2013-11-11 11:43:52 · 874 阅读 · 1 评论 -
C语言实现普通归并排序
void merge_array(int a[],int first, int mid, int last, int temp[]){ int i = first, j = mid + 1; int m = mid, n = last; int k = 0; while(i <= m && j <= n) { if(a[i] <= a[j]) { temp[k++]原创 2013-11-12 15:43:57 · 853 阅读 · 0 评论 -
怎样判断一个链表是否有环
问:怎样判断一个链表是否有环答:可以利用两个指针(快慢指针)。从链表头出发,指针1每次走一步,指针2每次走二步。若指针1与指针2相遇,则说明链表有环。问:怎样判断环连接点在哪里?答:设链表头到环连接点的距离为a, 环的长度为r,链表总长为L ,环节点到相遇点的距离为x ,快指针走的距离为2s,慢指针走的距离为s。 则 2s = s + nr (n为圈数原创 2013-11-11 18:30:43 · 779 阅读 · 0 评论 -
C语言数组实现队列
#include #include #include #define MAX_QUEUE_SIZE 10typedef struct{ unsigned int queue[MAX_QUEUE_SIZE]; int head; int tail; int count;}array_queue;/*初始化队列*/array_queue* initialize_array原创 2013-11-09 20:25:53 · 928 阅读 · 0 评论 -
C语言实现快速排序
快速排序就是在原数组中指定一个元素a(随机或数组第一个元素),然后调整数组中所有比a小的元素到a的左边,比a大的元素到a的右边。调整完之后,在用同样的方法处理a左边和右边的子数组,到最后使整个数组全部排序完毕。#include #include #include void quicksort(int a[], int low, int high){ int temp = 0;原创 2013-11-12 12:14:16 · 1221 阅读 · 0 评论