加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

flash特效原理:链式模型的使用(2)

发布时间:2020-12-15 17:22:00 所属栏目:百科 来源:网络整理
导读:? ? ? 接下来,我们会构建一个简单类,作为这种模型的一个基础构成。我们定义这个为LinkNode 类 ? ? ?? package {//节点public class LinkNode{ public var data:Object;public var next:Object;public function LinkNode(){}}} 这个类,只是有两个属性,第

? ? ? 接下来,我们会构建一个简单类,作为这种模型的一个基础构成。我们定义这个为LinkNode 类

? ? ??

package 
{
	//节点
	public class LinkNode
	{
        public var data:Object;
		public var next:Object;
		public function LinkNode()
		{
			
		}

	}
}

这个类,只是有两个属性,第一个属性是记录对象,第二个数据是记录下一个节点。(这次我们只用单向的链表,后面的变化会很多种情况)

第二个类为LinkList 类,这个类只有三个方法,一个是插入的操作,一个获取节点的操作,一个是获取节点数组的方法。这种结构可以写的很复杂,但是鉴于实验,我更加希望可以简单易懂。

package 
{


	public class LinkList
	{

		private var list:Array = [];
		private var firstNode:LinkNode;
		private var tempNode:LinkNode;
		public function LinkList()
		{

		}

		//插入操作
		public function insert(node:*):void
		{
			if (firstNode==null)
			{
				firstNode=new LinkNode();
				firstNode.data = node;
				firstNode.next = null;
				list.push(firstNode);
				tempNode = firstNode;
			}
			else
			{
				var newNode:LinkNode=new LinkNode();
				newNode.data = node;
				newNode.next = tempNode;
				list.push(newNode);
				tempNode = newNode;
				firstNode.next = tempNode;
			}


		}

        //获取某一个节点
		public function getNode(node:*):LinkNode
		{
			var len:int = list.length;
			for (var i:int=0; i<len; i++)
			{
				if (list[i].data == node)
				{
					return list[i];
				}
			}
			return null;
		}
		
		public function get source():Array
		{
			return list;
		}

	}

}



? ? 插入方法是参考这个图的思路来做,有了这个方法之后,我们可以对数据进行插入,它的创建思路很简单,当第一个点A为空的时候,创建并插入到数值里面,当第二个点的时候,它的指向就指向于A点,但是A的指向于指向到B,同理,当创建到C点的时候,C指向到B,而A需要重新指向以保证它形成一个回路.


第一步: ?A--->null,

第二步:B----->A ? [ ?A--->B]

第三步:C----->B---->A,[A---->C]

第四步:D---->C--->B---->A,?[A---->D]


通过使用这个模型,我们就可以来点有意思的程序了。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读