顺时针访问二维数组,从1开始赋值至最后一个节点。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TraverseMatrix
{
class Program
{
static void Main(string[] args)
{
// 数组
var matrix = new int[4, 4];
// 数组长度
int length = matrix.GetLength(0) * matrix.GetLength(1);
// 游标
var cursor = new Point(0, 0);
// 移动方向
int direction = 1;
// 初始值
int val = 1;
// 已访问的节点
var visited = new List<Point>();
while (visited.Count < length)
{
// 数组赋值
matrix[cursor.X, cursor.Y] = val++;
// 记录已访问的节点
visited.Add(new Point(cursor.X, cursor.Y));