基于JavaScript实现动画轮播效果

这是之前做一个仿极客学院网站写的代码了,年代也比较久远。原本是使用jquery写的,后来被强制改回JavaScript...鬼知道我那时经历了什么。

当时在百度上快速学习了一下相关内容,再请教一下大神,糊里糊涂就弄出来了...


直接上代码(Carousel.js),页面布局代码在文末,因为实在太长:

	var img_list = document.getElementById("carousel-box").getElementsByTagName("div")[0]; //获取图片列表容器
	var ori_imgs = img_list.getElementsByTagName("a");  //获取图片对象

	var spans = document.getElementById("carousel-box").getElementsByTagName("div")[1].getElementsByTagName("span"); //获取圆点
	var img_list_timer = null;
	//克隆首图片节点并添加到img_list节点后
	var clone1 = ori_imgs[0].cloneNode(true);
	img_list.appendChild(clone1);
	
	var clone5 = ori_imgs[4].cloneNode(true);
	var clone4 = ori_imgs[3].cloneNode(true);
	img_list.insertBefore(clone5, ori_imgs[0]);
	img_list.insertBefore(clone4, clone5);

	var btnsize = spans.length;

	var imgs = img_list.getElementsByTagName("img");
	var size = imgs.length;
	var viewWidth, base, pdis;

	var i = 3;
	setopc(i);

	var sf = 0;
	adjust();

	window.onresize = function() {
		adjust();
	}
        //这里的参数为了自适应调整了很久
	function adjust() {
		base = document.body.clientWidth*0.09;
		pdis = document.body.clientWidth*0.84;
		for (var j = 0; j < size; j++) {
			imgs[j].style.width = (document.body.clientWidth*0.84).toString() + "px";
			imgs[j].style.height = "450px";
		}
		var imgsWidth = document.body.clientWidth*0.84;
		img_list.style.width = (imgsWidth*(imgs.length+1)).toString() + "px";
		if (sf == 0) {
			img_list.style.left = (-(document.body.clientWidth*0.84)*3+document.body.clientWidth*0.08).toString() + "px";
			sf = 1;
		} else {
			img_list.style.left = (-i*pdis+base).toString() + "px";
		}
	}

	//向右轮播函数
	function moveR() {
		i++;
		if (i == size-1) {
			img_list.style.left = -1*pdis+base;
			i = 2;
		}

		if (img_list_timer != null)
			clearInterval(img_list_timer);
		var current_left = img_list.offsetLeft;
		var current_time = 0;
		img_list_timer = setInterval(function() {
			var delta = (current_left - ((-i*pdis)+base)) / 42;
			img_list.style.left = (img_list.offsetLeft - delta).toString() + "px";
			current_time += 1
			if(current_time >= 42){
				clearInterval(img_list_timer);
			}
		}, 1000 / 60);
		
		setopc(i);
		for(var k = 0;k < spans.length;k++) {
			if (k != i-2) {
				remove_class(spans[k], "on");
			} else {
				add_class(spans[k], "on");
			}
		}
	}

	function setopc(index) {
		for (var k = 0; k < size; k++) {
			if (k != index) imgs[k].style.opacity = 0.7;
			else imgs[k].style.opacity = 1;
		}
	}

	//鼠标滑过圆点
	for(var j = 0;j < spans.length;j++) {
		(function(arg) {
			spans[arg].onmouseover = function() {
				var real_i = arg + 2;
				setopc(real_i);
				i = real_i;

				if (img_list_timer != null)
					clearInterval(img_list_timer);
				var current_left = img_list.offsetLeft;
				var current_time = 0;
				img_list_timer = setInterval(function() {
					var delta = (current_left - ((-real_i*pdis)+base)) / 42;
					img_list.style.left = (img_list.offsetLeft - delta).toString() + "px";
					current_time += 1;
					if(current_time >= 42){
						clearInterval(img_list_timer);
					}
				}, 1000 / 60);
				
				for(var k = 0;k < spans.length;k++) {
					if (k != arg) {
						remove_class(spans[k], "on");
					} else {
						add_class(spans[k], "on");
					}
				}
			};
		})(j);
	}

	//定时自动轮播
	var t = setInterval(function() {
		moveR();
	}, 2000);

	//鼠标划过图片停止自动轮播
	var cbox = document.getElementById("carousel-box");
	cbox.onmouseover = function() {
		clearInterval(t);
	};

	cbox.onmouseout = function() {
		t = setInterval(function() {
			moveR();
		}, 2000);
	};
	
	
	function has_class(obj, cls) {
	    return obj.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
	}

	function add_class(obj, cls) {
	    if (!has_class(obj, cls)) obj.className += " " + cls;
	}

	function remove_class(obj, cls) {
	    if (has_class(obj, cls)) {
	        var reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
	        obj.className = obj.className.replace(reg, ' ');
	    }
	}



下面是首页的HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">


    <title>ML</title>
    <link rel="shortcut icon" href="img/logo/logo_red.png">
    <link rel="stylesheet" href="css/HorizontalScrollstyle.css">
    <link rel="stylesheet" href="css/public/myLayout.css">
    <link rel="stylesheet" href="css/Carousel.css">
    <link rel="stylesheet" href="css/public/header_footer.css">
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
<header>
    <nav class="navbar navbar-default" role="navigation">
        <div class="container">
            <div class="navbar-header">
                <a class="navbar-brand"><img id="header-logo"  src="img/logo/logo_white.png" alt="A"></a>
            </div>
            <div class="header-menu">
                <ul class="nav navbar-nav">
                    <li><a href="#">实战</a></li>
                    <li class="dropdown">
                        <a href="#">路径<span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#" class="glyphicon glyphicon-fire">&nbsp;前端工程师</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-phone">&nbsp;Android工程师</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-unchecked">&nbsp;PHP工程师</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-leaf">&nbsp;Java工程师</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-hdd">&nbsp;Linux运维工程师</a></li>
                        </ul>
                    </li>
                    <li><a href="#">猿问</a></li>
                    <li class="dropdown">
                        <a href="#">极客社区<span class="caret"></span></a>
                        <ul class="dropdown-menu">
                            <li><a href="#" class="glyphicon glyphicon-question-sign">&nbsp;技术问答</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-globe">&nbsp;Wiki</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-comment">&nbsp;社群</a></li>
                            <li class="divider"></li>
                            <li><a href="#" class="glyphicon glyphicon-save">&nbsp;资源下载</a></li>
                        </ul>
                    </li>
                </ul>
                <ul class="nav navbar-nav navbar-right">
                    <li><a href="#" class="glyphicon glyphicon-phone"></a></li>
                    <li><a href="login.html">登录</a></li>
                    <li><a href="register.jsp">注册</a></li>
                </ul>
                <div class="nav navbar-nav navbar-right">
                    <form id="rearch-box" role="search">
                        <input type="text" placeholder="Search">
                        <button><span class="glyphicon glyphicon-search"></span></button>
                    </form>
                </div>
            </div>
        </div>
    </nav>
</header>


<main class="main">
    <!-- 轮播图 -->
    <div id="carousel-box">
        <div id="img_list">
            <a href="#"><img class="LunboImg" src="img/index/1.jpg" alt="1"/></a>
            <a href="#"><img class="LunboImg" src="img/index/2.jpg" alt="2"/></a>
            <a href="#"><img class="LunboImg" src="img/index/3.jpg" alt="3"/></a>
            <a href="#"><img class="LunboImg" src="img/index/4.jpg" alt="4"/></a>
            <a href="#"><img class="LunboImg" src="img/index/5.jpg" alt="5"/></a>
        </div>
        <div id="point">
            <span></span>
            <span class="on"></span>
            <span></span>
            <span></span>
            <span></span>
        </div>
    </div>
    <!--课程滚条-->
    <div  id="Horizontal">
        <div class="container">
            <div class="row">
                <div class="col-xs-12 col-md-12 col-lg-12">
                    <div class="page-header">
                        <h2><span class="glyphicon glyphicon-signal"></span>&nbsp;&nbsp;最新课程<a href="#" class="more_inf">更多 ></a></h2>
                    </div>
                </div>
            </div>
            <div class="row"  id="Horizontal-Scroll">
                <div id="content-1" class="content horizontal-images">
                    <table id="light-box">
                        <tr>
                            <ul >
                                <td>
                                    <li>
                                        <div class="flip-container" >
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container" >
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container" >
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container">
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container" >
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container">
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container" >
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                                <td>
                                    <li>
                                        <div class="flip-container" >
                                            <div class="flipper">
                                                <div class="front">
                                                    <img src="img/index/JS.jpg" />
                                                    <p class="img_under">JS基础学习</p>
                                                </div>
                                                <a href="#" class="back">
                                                    <h3>JS基础</h3>
                                                    <p>当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换当鼠标滑过包含块时,元素整体翻转180度,以实现正反面的切换</p>
                                                    <div class="button_">开始学习</div>
                                                </a>
                                            </div>
                                        </div>
                                    </li>
                                </td>
                            </ul>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
    </div>


    <div class="container class_show">
        <div class="row">
            <div class="col-xs-12 col-md-12 col-lg-12">
                <div class="page-header">
                    <h2> <span class="glyphicon glyphicon-signal"></span>&nbsp;&nbsp;免费好课<a href="#" class="more_inf">更多 ></a></h2>
                </div>
            </div>
        </div>
        <div class="row"  style="box-shadow: 3px 3px 5px rgba(9,9,9,0.5);">
            <div class="col-xs-2 col-md-2 col-lg-2 work_show_left" style="background-image: url(img/index/Web1.png);background-size: cover">
                <br>
                <h2>Web<br>前端工程师</h2>
                <p><a href="#">职业路径 ></a></p>
                <ul>
                    <li><a href="#">jQuery源码探索之旅1</a> </li>
                    <li><a href="#">jQuery源码探索之旅2</a> </li>
                    <li><a href="#">jQuery源码探索之旅3</a> </li>
                </ul>
            </div>
            <div class="col-xs-8 col-md-8 col-lg-8 work_show_middle">
                <a href="#">
                    <div class="row">
                        <div class="col-xs-8 col-md-8 col-lg-8" style="background-image:url(img/index/IP2.jpg);background-size:cover;">
                            <h3>JS高级编程</h3>
                        </div>
                        <div class="col-xs-4 col-md-4 col-lg-4" style="padding:0px;margin-bottom: 10px">
                            <img src="img/index/SmallIP1.jpg">
                            <div class="intr_other">
                                <div class="intr_detail">
                                    <p>中</p>
                                    <p>响应式布局</p>
                                    <p>摆脱设备大小的限制</p>
                                </div>
                                <p class="people_num">共有8000人正在学习</p>
                            </div>
                        </div>
                    </div>
                </a>
                <a href="#">
                    <div class="row">
                        <div class="col-xs-8 col-md-8 col-lg-8" style="background-image:url(img/index/IP1.jpg);background-size:cover;">
                            <h3>JS高级编程</h3>
                        </div>
                        <div class="col-xs-4 col-md-4 col-lg-4" style="padding:0px;margin-bottom: 10px">
                            <img src="img/index/SmallIP2.jpg">
                            <div class="intr_other">
                                <div class="intr_detail">
                                    <p>中</p>
                                    <p>响应式布局</p>
                                    <p>摆脱设备大小的限制</p>
                                </div>
                                <p class="people_num">共有8000人正在学习</p>
                            </div>
                        </div>
                    </div>
                </a>
            </div>
            <div class="col-xs-2 col-md-2 col-lg-2 work_show_right">
                <a href="#"><img src="img/index/SmallIP3.jpg"></a>
                <div></div>
                <ul>
                    <li><a href="#">鼠标悬浮效果</a> </li>
                    <li><a href="#">阿里云在线编辑</a> </li>
                    <li><a href="#">AngulJS实战</a> </li>
                    <li><a href="#">Html/CSS基础</a> </li>
                    <li><a href="#">Html/CSS进阶</a> </li>
                    <li><a href="#">Html/CSS高级</a> </li>
                    <li><a href="#">Html/CSS实战</a> </li>
                </ul>
            </div>
        </div>
        <div class="row"  style="box-shadow: 3px 3px 5px rgba(9,9,9,0.5);">
            <div class="col-xs-2 col-md-2 col-lg-2 work_show_left" style="background-image: url(img/index/Web2.png);background-size: cover">
                <br>
                <h2>Java<br>工程师</h2>
                <p><a href="#">职业路径 ></a></p>
                <ul>
                    <li><a href="#">jQuery源码探索之旅1</a> </li>
                    <li><a href="#">jQuery源码探索之旅2</a> </li>
                    <li><a href="#">jQuery源码探索之旅3</a> </li>
                </ul>
            </div>
            <div class="col-xs-8 col-md-8 col-lg-8 work_show_middle">
                <a href="#">
                    <div class="row">
                        <div class="col-xs-8 col-md-8 col-lg-8" style="background-image:url(img/index/IP2_2.jpg);background-size:cover;">
                            <h3>JS高级编程</h3>
                        </div>
                        <div class="col-xs-4 col-md-4 col-lg-4" style="padding:0px;margin-bottom: 10px">
                            <img src="img/index/SmallIP10.jpg">
                            <div class="intr_other">
                                <div class="intr_detail">
                                    <p>中</p>
                                    <p>响应式布局</p>
                                    <p>摆脱设备大小的限制</p>
                                </div>
                                <p class="people_num">共有8000人正在学习</p>
                            </div>
                        </div>
                    </div>
                </a>
                <a href="#">
                    <div class="row">
                        <div class="col-xs-8 col-md-8 col-lg-8" style="background-image:url(img/index/IP2_1.jpg);background-size:cover;">
                            <h3>JS高级编程</h3>
                        </div>
                        <div class="col-xs-4 col-md-4 col-lg-4" style="padding:0px;margin-bottom: 10px">
                            <img src="img/index/SmallIP9.jpg">
                            <div class="intr_other">
                                <div class="intr_detail">
                                    <p>中</p>
                                    <p>响应式布局</p>
                                    <p>摆脱设备大小的限制</p>
                                </div>
                                <p class="people_num">共有8000人正在学习</p>
                            </div>
                        </div>
                    </div>
                </a>
            </div>
            <div class="col-xs-2 col-md-2 col-lg-2 work_show_right">
                <a href="#"><img src="img/index/SmallIP8.jpg"></a>
                <div></div>
                <ul>
                    <li><a href="#">鼠标悬浮效果</a> </li>
                    <li><a href="#">阿里云在线编辑</a> </li>
                    <li><a href="#">AngulJS实战</a> </li>
                    <li><a href="#">Html/CSS基础</a> </li>
                    <li><a href="#">Html/CSS进阶</a> </li>
                    <li><a href="#">Html/CSS高级</a> </li>
                    <li><a href="#">Html/CSS实战</a> </li>
                </ul>
            </div>
        </div>
        <div class="row"  style="box-shadow: 3px 3px 5px rgba(9,9,9,0.5);">
            <div class="col-xs-2 col-md-2 col-lg-2 work_show_left" style="background-image: url(img/index/Web3.png);background-size: cover">
                <br>
                <h2>Android<br>工程师</h2>
                <p><a href="#">职业路径 ></a></p>
                <ul>
                    <li><a href="#">jQuery源码探索之旅1</a> </li>
                    <li><a href="#">jQuery源码探索之旅2</a> </li>
                    <li><a href="#">jQuery源码探索之旅3</a> </li>
                </ul>
            </div>
            <div class="col-xs-8 col-md-8 col-lg-8 work_show_middle">
                <a href="#">
                    <div class="row">
                        <div class="col-xs-8 col-md-8 col-lg-8" style="background-image:url(img/index/IP3_2.jpg);background-size:cover;">
                            <h3>JS高级编程</h3>
                        </div>
                        <div class="col-xs-4 col-md-4 col-lg-4" style="padding:0px;margin-bottom: 10px">
                            <img src="img/index/SmallIP7.jpg">
                            <div class="intr_other">
                                <div class="intr_detail">
                                    <p>中</p>
                                    <p>响应式布局</p>
                                    <p>摆脱设备大小的限制</p>
                                </div>
                                <p class="people_num">共有8000人正在学习</p>
                            </div>
                        </div>
                    </div>
                </a>
                <a href="#">
                    <div class="row">
                        <div class="col-xs-8 col-md-8 col-lg-8" style="background-image:url(img/index/IP3_1.jpg);background-size:cover;">
                            <h3>JS高级编程</h3>
                        </div>
                        <div class="col-xs-4 col-md-4 col-lg-4" style="padding:0px;margin-bottom: 10px">
                            <img src="img/index/SmallIP6.jpg">
                            <div class="intr_other">
                                <div class="intr_detail">
                                    <p>中</p>
                                    <p>响应式布局</p>
                                    <p>摆脱设备大小的限制</p>
                                </div>
                                <p class="people_num">共有8000人正在学习</p>
                            </div>
                        </div>
                    </div>
                </a>
            </div>
            <div class="col-xs-2 col-md-2 col-lg-2 work_show_right">
                <a href="#"><img src="img/index/SmallIP5.jpg"></a>
                <div></div>
                <ul>
                    <li><a href="#">鼠标悬浮效果</a> </li>
                    <li><a href="#">阿里云在线编辑</a> </li>
                    <li><a href="#">AngulJS实战</a> </li>
                    <li><a href="#">Html/CSS基础</a> </li>
                    <li><a href="#">Html/CSS进阶</a> </li>
                    <li><a href="#">Html/CSS高级</a> </li>
                    <li><a href="#">Html/CSS实战</a> </li>
                </ul>
            </div>
        </div>
    </div>
</main>


<footer>
    <div class="container">
        <div class="row">
            <a href="##"><img src="img/logo/Sina.png"></a>
            <a href="##"><img src="img/logo/wechat.png"></a>
            <a href="##"><img src="img/logo/qq.png"></a>
            <a href="##"><img src="img/logo/qqBlog.png"></a>
            <a href="##"><img src="img/logo/qqSpace.png"></a>
            <p>
                <a href="#">企业合作</a>
                <a href="#">联系我们</a>
                <a href="#">讲师招募</a>
                <a href="#">常见问题</a>
                <a href="#">意见反馈</a>
                <a href="#">友情链接</a>
            </p>
        </div>
    </div>
    <div>
        <p style="width:100%; height:1px; background-color: #ccc;margin-bottom: 2.5rem"></p>
        <p>&copy; 2016 www.bl.com  京ICP备130236642号(伪造)</p>
    </div>
</footer>
<script type="text/javascript" src="js/Carousel.js"></script>
<script type="text/javascript" src="js/Scroll.js"></script>
<script type="text/javascript" src="js/header.js"></script>
</body>
</html>

现在让我再看这份代码,唯一的感觉就是,快速学习能力太重要了...


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/* * 基于双向链表实现双端队列结构 */ package dsa; public class Deque_DLNode implements Deque { protected DLNode header;//指向头节点(哨兵) protected DLNode trailer;//指向尾节点(哨兵) protected int size;//队列中元素的数目 //构造函数 public Deque_DLNode() { header = new DLNode(); trailer = new DLNode(); header.setNext(trailer); trailer.setPrev(header); size = 0; } //返回队列中元素数目 public int getSize() { return size; } //判断队列是否为空 public boolean isEmpty() { return (0 == size) ? true : false; } //取首元素(但不删除) public Object first() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); return header.getNext().getElem(); } //取末元素(但不删除) public Object last() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); return trailer.getPrev().getElem(); } //在队列前端插入新节点 public void insertFirst(Object obj) { DLNode second = header.getNext(); DLNode first = new DLNode(obj, header, second); second.setPrev(first); header.setNext(first); size++; } //在队列后端插入新节点 public void insertLast(Object obj) { DLNode second = trailer.getPrev(); DLNode first = new DLNode(obj, second, trailer); second.setNext(first); trailer.setPrev(first); size++; } //删除首节点 public Object removeFirst() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); DLNode first = header.getNext(); DLNode second = first.getNext(); Object obj = first.getElem(); header.setNext(second); second.setPrev(header); size--; return(obj); } //删除末节点 public Object removeLast() throws ExceptionQueueEmpty { if (isEmpty()) throw new ExceptionQueueEmpty("意外:双端队列为空"); DLNode first = trailer.getPrev(); DLNode second = first.getPrev(); Object obj = first.getElem(); trailer.setPrev(second); second.setNext(trailer); size--; return(obj); } //遍历 public void Traversal() { DLNode p = header.getNext(); while (p != trailer) { System.out.print(p.getElem()+" "); p = p.getNex
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值