书画工作室网站模板网站建设,网站标题加后缀,抚顺网站推广,站长之家是干什么的对于任何数据结构#xff0c;基本操作就是 遍历访问#xff08;增删改查#xff09;
各种数据结构的遍历和访问两种形式#xff1a;线性的和非线性的
一、线性形式
以 for/while 迭代为代表
数组遍历框架#xff0c;是典型的线性迭代结构
void traverse(int[] arr){f…对于任何数据结构基本操作就是 遍历访问增删改查
各种数据结构的遍历和访问两种形式线性的和非线性的
一、线性形式
以 for/while 迭代为代表
数组遍历框架是典型的线性迭代结构
void traverse(int[] arr){for (int i 0;iarr.length;i){//迭代访问 arr[i]}
}
链表遍历框架兼具迭代和递归结构
迭代结构
/* 基本的单链表节点 */
class ListNode {int val;ListNode next;
}void traverse(ListNode head) {for (ListNode p head; p ! null;p p.next) {//迭代访问p.val}
}
二、非线性形式
链表遍历框架递归结构
/* 基本的单链表节点 */
class ListNode {int val;ListNode next;
}void traverse(ListNode head) {// 递归访问 head.valtraverse(ListNode head.next) // 访问链表中的下一个节点
}
二叉树遍历框架是典型的非线性递归遍历结构
二叉树的结构定义
/* 基本的二叉树节点 */
class TreeNode {int val;TreeNode left,right;
}
二叉树的递归遍历
void traverse (TreeNode root){traverse(root.left);traverse(root.right);
}
N叉树的遍历
/* 基本的N叉树节点 */
class ListNode {int val;TreeNode[] children;
}void traverse(TreeNode root) {for (TreeNode child : root.childern)traverse(child);
}