堆的基本存储
堆是什么?
堆是一种基本的数据结构,它是一棵完全二叉树,其中每个节点的值都大于等于(或小于等于)其左右子节点的值。堆可以用来实现优先队列、排序算法等。
堆的基本操作
堆的基本操作有两个:插入和删除。插入操作将一个元素添加到堆中,而删除操作则从堆中删除一个元素。
插入操作
插入操作通常会在堆的末尾添加一个元素,然后将其与父节点比较,如果比父节点大(或小),则交换它们的位置,直到满足堆的性质。
void insert(int x) {
    heap[++n] = x;
    int i = n;
    while (i > 1 && heap[i] > heap[i / 2]) {
        swap(heap[i], heap[i / 2]);
        i /= 2;
    }
}
删除操作
删除操作通常会删除堆的根节点,然后将堆的最后一个元素放到根节点上,并将其与子节点比较,如果比其中一个子节点小(或大),则与其交换位置,直到满足堆的性质。

int remove() {
    int x = heap[1];
    heap[1] = heap[n--];
    int i = 1;
    while (i * 2 					
			
		文章版权声明:除非注明,否则均为JXLOG原创文章,转载或复制请以超链接形式并注明出处。
	
 
					

 
		 
		 
		 
		 
		 
		 
		 
		
 
	
还没有评论,来说两句吧...