遍历

C# 遍历文件夹

匿名 (未验证) 提交于 2019-12-02 23:41:02
C#遍历浏览某个文件夹下的所有文件,方法如下: 1 //C#遍历指定文件夹中的所有文件 2 DirectoryInfo TheFolder = new DirectoryInfo(path); 3 if (!TheFolder.Exists) 4 return; 5 6 //遍历文件 7 foreach (FileInfo NextFile in TheFolder.GetFiles()) 8 { 9 if (NextFile.Name == "0-0-11.grid") 10 continue; 11           // 获取文件完整路径 12 string heatmappath = NextFile.FullName; }

数据结构――二叉树的遍历

匿名 (未验证) 提交于 2019-12-02 23:38:02
对二叉树的遍历进行实现的算法: (1)定义二叉树的二叉链表存储结构。 (2)编写建立一棵二叉树算法。 (3)编写中序遍历二叉树算法。 (4)编写后序遍历二叉树算法。 (5)编写算法主程序。 (6)调试运行,记录结果。 编写头文件 Bitree.h #include<stdio.h> #include<stdlib.h> #include<malloc.h> #define OK 1 #define OVERFLOW -2 #define INFEASIBLE -1 #define TRUE 1 #define FALSE 0 #define ERROR 0 #define STACK_INIT_SIZE 100 #define STACKINCREMENT 10 typedef char TElemType; typedef int Status; //二叉树的二叉链表存储表示 typedef struct BiTNode { TElemType data; struct BiTNode * lchild,* rchild; } BiTNode,* BiTree; //创建二叉树 Status CreatBiTree(BiTree &T){ char ch; scanf("%c",&ch); if (ch == '#') T=NULL; else { if (!(T=(BiTree

遍历的集合后的数据,如何组成一条字符串

匿名 (未验证) 提交于 2019-12-02 23:34:01
参考链接: https://zhidao.baidu.com/question/987351095931176779.html 重点是 定义一个变量 String a = null; a += (String) values.get(j) + ","; //每遍历一个值 就拼接。最后拼接成一个字符串。 } (如果代码可以优化的话,欢迎大神们指正。刚入行不久,希望大家不要介意我的菜。谢谢) 文章来源: https://blog.csdn.net/qq_33220391/article/details/90510361

遍历map和list(自己用)

匿名 (未验证) 提交于 2019-12-02 23:32:01
遍历map 1.这是最常见的并且在大多数情况下也是最可取的遍历方式。在键值都需要时使用。 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); for (Map.Entry<Integer, Integer> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } 2.在for-each循环中遍历keys或values。 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); //遍历map中的键 for (Integer key : map.keySet()) { System.out.println("Key = " + key); } //遍历map中的值 for (Integer value : map.values()) { System.out.println("Value = " + value); } 3.用迭代器迭代 Map<Integer, Integer> map = new HashMap<Integer, Integer>(); Iterator<Map.Entry

对角线遍历

匿名 (未验证) 提交于 2019-12-02 23:32:01
题目:给定一个含有 M x N 个元素的矩阵(M 行,N 列),请以对角线遍历的顺序返回这个矩阵中的所有元素,对角线遍历如下图所示。 说明: 输入: [ [ 1, 2, 3 ], [ 4, 5, 6 ], [ 7, 8, 9 ] ] 输出: [1,2,4,7,5,3,6,8,9] 所以,即先创建空列表,然后append迭代添加即可。 还是自己多画图找规律。 class Solution: def findDiagonalOrder(self, matrix: List[List[int]]) -> List[int]: if(matrix==[]): return [] r=0 c=0 row=len(matrix) col=len(matrix[0]) a=row*col res=[] for i in range(a): res.append(matrix[r][c]) if((r+c)%2==0): if(c==col-1): r=r+1 elif(r==0): c=c+1 else: r=r-1 c=c+1 else: if(r==row-1): c=c+1 elif(c==0): r=r+1 else: r=r+1 c=c-1 return res 这里,编写时出了俩错, 第一个:r=0,c=0 不能这么写,应该改为r,c=0,0 第二个:python里面没有自增,自减

二叉树的前序,中序,后续遍历

匿名 (未验证) 提交于 2019-12-02 23:32:01
看了一篇有关这方面的博客,于是就运行了一下上面的代码. #include<iostream> #include<algorithm> #include<string> using namespace std; typedef struct node{ char data; struct node *lc,*rc;//左右孩子 }*TBT,TBTNode; void createTBT(TBT &T){ char ch; cin>>ch; if(ch==' ')//如果输入位空字符,表示这个子树的结束 { T=NULL; return ; } T=(TBT)malloc(sizeof(TBTNode)); T->data=ch; createTBT(T->lc); createTBT(T->rc); } void preOrderTraverse(TBT T)//先序遍历 { if(!T) return ; cout<<T->data; preOrderTraverse(T->lc); preOrderTraverse(T->rc); } void inOrderTraverse(TBT T)//中序遍历 { if(!T) return; inOrderTraverse(T->lc); cout<<T->data; inOrderTraverse(T->rc); } void

层序遍历

匿名 (未验证) 提交于 2019-12-02 23:26:52
层序遍历为广度优先遍历,需要队列实现。 1. 普通的层序遍历 ˼· 启动 -> 根入队列 找下线(去除空节点) 取队首 找左右孩子,并将其入队列 左孩子出队列,左孩子的左右孩子入队列 右孩子出队列,右孩子的左右孩子入队列 终止条件 队列为空 public class LevelOrderTraversal { private static class Node { int value; //左子树 Node left; //右子树 Node right; Node(int v) { this.value = v; } } public static void levelOrderTraversal(Node root) { if(root==null){ return; } //存放节点 LinkedList<Node> queue=new LinkedList(); //根节点放入队列 queue.addLast(root); //若队列不为空,则一直 出一个进*个(左右子树为空则不进入) while(!queue.isEmpty()) { Node out=queue.pollFirst(); System.out.println(out.value); //找下线 if(out.left!=null){ queue.addLast(out.left); } if(out

C语言 数组元素的遍历

匿名 (未验证) 提交于 2019-12-02 23:26:52
一维数组 # include <stdio.h> int main ( ) { int nums [ 10 ] ; int i ; //从控制台读取用户输入 for ( i = 0 ; i < 10 ; i ++ ) { scanf ( "%d" , & nums [ i ] ) ; //注意取地址符 &,不要遗忘哦 } //依次输出数组元素 for ( i = 0 ; i < 10 ; i ++ ) { printf ( "%d " , nums [ i ] ) ; } return 0 ; } # include <stdio.h> int main ( ) { int nums [ 10 ] = { 1 , 10 , 6 , 296 , 177 , 23 , 0 , 100 , 34 , 999 } ; int i , num , thisindex = - 1 ; printf ( "Input an integer: " ) ; scanf ( "%d" , & num ) ; for ( i = 0 ; i < 10 ; i ++ ) { if ( nums [ i ] == num ) { thisindex = i ; break ; } } if ( thisindex < 0 ) { printf ( "%d isn't in the array.\n" ,

二叉树的遍历

匿名 (未验证) 提交于 2019-12-02 23:26:52
题目描述 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以指针方式存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是空格,空格字符代表空树。建立起此二叉树以后,再对二叉树进行中序遍历,输出遍历结果。 输入描述: 输入包括1行字符串,长度不超过100。 输出描述: 可能有多组测试数据,对于每组数据, 输出将输入字符串建立二叉树后中序遍历的序列,每个字符后面都有一个空格。 每个输出结果占一行。 示例1 输入 abc##de#g##f### 输出 c b e g d f a #include < bits / stdc ++. h > using namespace std ; typedef struct node { char c ; struct node * lchild ,* rchild ; } TNode ,* Tree ; string str ; int x ; void creat ( Tree & T ) { if ( str [ x ]== '#' ) { T = NULL ; x ++; return ; } T =( TNode *) malloc ( sizeof ( TNode )); T -> c = str [ x ]; x ++; creat ( T -> lchild );

Pyhon3的链表的实现(包含遍历,读取,删除,头插,尾插)

匿名 (未验证) 提交于 2019-12-02 23:26:52
版权声明:本文为博主原创文章,转载请注明出处。谢谢。 https://blog.csdn.net/qq_38431572/article/details/88850730 还记得上次面试挂在了链表上,记忆忧新,最近特别赶工重新学习了数据结构等一系列知识,恶补自己的基础。今天趁着复习链表的时候,把Python的链表代码详细的讲解一遍。谢谢大家的支持。 进入正题,链表是一种数据结构,是一种典型的线性结构。它的存储的方式并不像顺序表那样,是按照顺序一个挨着一个放置的,它的每一个节点(就是存储在其中的一个元素单元)都不是相邻的,所以相对来讲,链表不需要一块完整的内存,但是由于每个节点都需要存储下一个节点的位置信息,所以所占用的内存,其实还会比较多一点,来一张图片理解一下吧。 很容易发现,顺序表中的单元,一个挨一个放置,而链表,需要多加一个元素来存放下一个的地址,所以,从这里我们可以推断出这两个结构的比较的一部分: 顺序表: 一、逻辑(下标)上相邻的元素物理(内存)上也相邻! 二、需要一整块的内存(由图很轻易就能知道,不连续就不是顺序表了) 三、读取简单(直接通过下标,解释器就能直接计算并寻址,时间复杂度为O(1)) 链表: 一、不需要一整块内存,(因为每个节点(node)都是分开存放的) 二、逻辑上相邻的元素,其实并不相邻。 三、读取较难(因为需要从“头”开始,一个挨一个的顺序读