用数组和链表两种方式实现队列

手写数组实现队列

 1 int queue[20];
 2 int front,rear;
 3
 4 void clear()
 5 {
 6     front = rear = -1;
 7 }
 8
 9 int size()
10 {
11     return (rear-front);
12 }
13
14 bool empty()
15 {
16     if(front==rear)
17         return true;
18     else
19         return  false;
20 }
21
22 void push(int x)
23 {
24     queue[++rear] = x;
25 }
26
27 void pop()
28 {
29     front++;
30 }
31
32 int get_front()
33 {
34     return queue[front+1];
35 }
36
37 int get_rear()
38 {
39     return queue[rear];
40 }

手写链表实现队列

 1 struct node
 2 {
 3     int data;
 4     node* next;
 5 };
 6
 7 node* Create(int box[],int t)  // 创建一个有头节点的链表
 8 {
 9     node *head,*pre,*temp;
10     head = new node;
11     head->next = NULL;
12     pre = head;
13     for(int i=0;i<t;++i) { temp = new node; temp->data = box[i];
14         temp->next = NULL;
15         pre->next = temp;
16         pre = temp;
17     }
18     return head;
19 } 

原文地址:https://www.cnblogs.com/kachunyippp/p/10256782.html

时间: 2024-11-08 05:39:22

用数组和链表两种方式实现队列的相关文章

C++ 数组遍历的两种方式

C++ 数组遍历的两种方式: #include <iostream> using namespace std; int main() { // 一维数组 int fibonacci[5] = {1, 1, 2, 3, 5}; // 使用索引遍历 // 求数组长度:sizeof(array)/sizeof(array[0]) cout << "Traverse By Index: "; for (int i = 0; i < sizeof(fibonacci

mysql存储过程中遍历数组字符串的两种方式

第一种:多次使用substring_index()的方法 DELIMITER $$ DROP PROCEDURE IF EXISTS `array`$$ CREATE  PROCEDURE `array`() BEGIN SET @array_content="www mysql com hcymysql blog 51cto com"; SET @i=1; SET @count=CHAR_LENGTH(@array_content)-CHAR_LENGTH(REPLACE(@arra

js数组清空的两种方式

编辑器加载中...方式1,length赋值为0 这种方式很有意思, 其它语言如Java,其数组的length是只读的,不能被赋值.如 int[] ary = {1,2,3,4}; ary.length = 0; Java中会报错,编译通不过. 而JS中则可以,且将数组清空了, var ary = [1,2,3,4]; ary.length = 0; console.log(ary); // 输出 [],空数组,即被清空了 目前 Prototype中数组的 clear 和mootools库中数组的

数组求和的两种方式与性能比较

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

【转】java中byte数组与int类型的转换(两种方式)----不错

原文网址:http://blog.csdn.net/piaojun_pj/article/details/5903009 java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形int转换成byte数组,同时如何把一个长度为4的byte数组转换为int类型.下面有两种方式. 第一种方法: public static byte[] int2byte(int

二维数组的认识及其表示元素的两种方式

/* ============================================================================ Name : TeatArr.c Author : lf Version : Copyright : Your copyright notice Description : 二维数组的认识以及其表示元素的两种方式 备注说明 1 要理解二维数组的存储方式. 2 实际上利用a[i][j]的方式并不"正统",这是这靠近我们的 常识一些

求字符串长度 strlen(数组指针两种方式)

问题: 求字符串中所含有字符的个数(包括空格),即求字符串长度: #include <stdio.h> #include <assert.h> int _strlen(const char* str) { assert(str != NULL); int i=0; for(;*str++!='\0';i++); //for(;str++!=NULL;i++);//有些说这句也可以,但执行结果是死循环,str++即使越界也未必为NULL; return i; } int _strle

合并两个数组的两种方式的异同

本文讨论合并数组的两种方式:$a+$b , array_merge($a,$b) 操作符+,在前一个数的基础上插入后一个数组,如果有相同的抛弃,而array_merge 是在前一个参数基础上插入后一个参数,如果有相同用的key 用后一个覆盖.实例如下: php > $a = array('a'=>'1','b'=>'2','c'=>'3'); php > $b = array('c'=>3,'d'=>'4','e'=>'5'); php > $c =

【剑指offer】递归循环两种方式反转链表

转载请注明出处:http://blog.csdn.net/ns_code/article/details/25737023 本文分别用非递归和递归两种方式实现了链表的反转,在九度OJ上AC. 题目描述: 输入一个链表,反转链表后,输出链表的所有元素.(hint : 请务必使用链表) 输入: 输入可能包含多个测试样例,输入以EOF结束.对于每个测试案例,输入的第一行为一个整数n(0<=n<=1000):代表将要输入的链表的个数.输入的第二行包含n个整数t(0<=t<=1000000)