精华内容
下载资源
问答
  • C语言遍历二叉树

    2021-05-14 08:08:16
    C语言遍历二叉树二叉树的定义实现的函数完整源代码实现如下 二叉树的定义 typedef struct treeNode//定义 { int data; treeNode *left; treeNode *right; } treenode, *TreeNode; 实现的函数 void pre(TreeNode ...

    二叉树的定义

    typedef struct treeNode//定义
    {
        int data;
        treeNode *left;
        treeNode *right;
    } treenode, *TreeNode;
    

    实现的函数

    void pre(TreeNode node);//前序遍历
    void mid(TreeNode node);//中序遍历
    void beh(TreeNode node)/;/后序遍历
    void tree(TreeNode one)//创建一个二叉树
    

    完整源代码实现如下

    //
    #include<stdio.h>
    #include<stdlib.h>
    typedef struct treeNode//定义
    {
        int data;
        treeNode *left;
        treeNode *right;
    } treenode, *TreeNode;
    void pre(TreeNode node)//前序遍历
    {
        if(node==NULL)
            return ;
        printf("%d ", node->data);
        pre(node->left);
        pre(node->right);
    }
    void mid(TreeNode node)//中序遍历
    {
        if(node==NULL)
            return ;
        mid(node->left);
        printf("%d ", node->data);
        mid(node->right);
    }
    void beh(TreeNode node)//后序遍历
    {
        if(node==NULL)
            return ;
        beh(node->left);
        beh(node->right);
        printf("%d ", node->data);
    }
    void tree(TreeNode one)//定义一个现成的二叉树
    {
        one->data=3;
        one->left=(treenode*)malloc(sizeof(treenode));
            one->left->data=9;
            one->left->left=NULL;
            one->left->right=NULL;
        one->right=(treenode*)malloc(sizeof(treenode));
            one->right->data=20;
            one->right->left=(treenode*)malloc(sizeof(treenode));
                one->right->left->data=15;
                one->right->left->left=NULL;
                one->right->left->right=NULL;
            one->right->right=(treenode*)malloc(sizeof(treenode));
                one->right->right->data=7;
                one->right->right->left=NULL;
                one->right->right->right=NULL;
    }
    int main()//主方法
    {
        TreeNode  one;
        one=(treenode*)malloc(sizeof(treenode));
        tree(one);
        printf("该二叉树的前序遍历为:\n");
        pre(one);
        printf("\n该二叉树的中序遍历为:\n");
        mid(one);
        printf("\n该二叉树的后序遍历为:\n");
        beh(one);
    }
    
    
    展开全文
  • C语言遍历目录

    2018-11-13 17:09:09
    通过C语言实现对指定目录的递归遍历,用到的结构类型函数包括:DIR、struct dirent、opendir、readdir、closedir
  • #include #include #include #include void main() { WIN32_FIND_DATA ffd; //TCHAR szDir[MAX_PATH];...这代码应该遍历文件夹下所有的文件和目录的,为什么我输入任何一个路径都显示没有找到文件啊,求大神帮忙
  • C语言遍历目录文件

    2019-10-19 21:32:26
    使用C语言的 opendir、readdir 函数读取遍历指定目录下的指定类型的文件。

    使用C语言的 opendir、readdir 函数读取遍历指定目录下的指定类型的文件。

    指定目录结构:

    指定 bmp 或 jpg 格式文件:

     实现代码:

    bool search_file(const char* src_dir, const char* file_type)
    {
    	struct dirent * entry;
    	
    	//1,打开目录操作
    	DIR* dirp = opendir(src_dir);
    	
    	//3,读取目录操作
    	char src_buf[1024] = {0};
    	
    	while (1) {
    		entry = readdir(dirp);
    		
    		if (entry == NULL) {
    			break;
    		}
    		
    		//比对字符串,排除.和..
    		if (!strncmp(entry->d_name, ".", 1) || !strncmp(entry->d_name, "..", 2)) {
    			continue;
    		}
    		
    		//拼接路径+文件名
    		sprintf(src_buf, "%s/%s", src_dir, entry->d_name);
    		
    		if (entry->d_type == DT_DIR) {
    			//封装函数,递归创建目录
    			search_file(src_buf, file_type);
    		}if (entry->d_type == DT_REG) {
    			char * pExt;
    			pExt = strrchr(src_buf, '.');
    			if ( strcmp(pExt, file_type) == 0 )//查找指定类型“file_type”的文件
    			{
    				printf("file : %s\n", src_buf);
    				
    			}
    			
    		}
    		
    	}
    	
    	return true;
    }

     

    展开全文
  • 遍历字符串数组 #include <stdio.h> int main(void){ int i; char cs[][6] = {"VV", "cat", "2020"}; for (i = 0; i <... printf("cs[%d] = \"%s\"\n", i, cs[i]);...使用函数遍历字符串数
    遍历字符串数组
    #include <stdio.h>
    
    int main(void){
    	int i;
    	char cs[][6] = {"VV", "cat", "2020"};
    	
    	for (i = 0; i < 3; i++){
    		printf("cs[%d] = \"%s\"\n", i, cs[i]);
    	} 
    	
    	return 0;
    } 
    

    注:
    数组声明中初始值不足时,用 0 来初始化该元素。因此各个字符串后面的空白部分都初始化为 null 字符。

    使用函数遍历字符串数组
    #include <stdio.h>
    
    void traversal(const char s[][6], int n){
    	int i;
    	for (i = 0; i < n; i++){
    		printf("s[%d] = \"%s\"\n", i, s[i]);
    	}
    } 
    
    int main(void){
    	char cs[][6] = {"VV", "cat", "2020"};
    	
    	traversal(cs, 3);
    	
    	return 0;
    }
    

    注:
    在接收二维数组的形参的声明中,只有第一维的数组元素可以省略。

    错误声明:

    void traversal(const char s[][], int n)  // 这种声明是不正确的。
    

    正确声明:

    void traversal(const char s[][6], int n)  // 只能接收元素数为6的字符串数组。
    
    使用函数遍历字符串每一个字符
    #include <stdio.h>
    
    void traversal(const char s[][6], int n){
    	int i;
    	
    	for(i = 0; i < n; i++){
    		int j =0;
    		printf("s[%d] = \"", i);
    		
    		while(s[i][j]){
    			putchar(s[i][j++]);
    		}
    		puts("\"");
    	}
    }
    
    int main(void){
    	char cs[][6] = {"VV", "cat", "2020"};
    	
    	traversal(cs, 3);
    	
    	return 0;
    }
    

    运行结果:
    在这里插入图片描述

    展开全文
  • C语言 遍历一个文件夹的所有文件以及函数strstri不区分大小写查找字符串 一、遍历一个文件夹的所有文件代码 int listallfilename(const char* path) { DIR *dir; struct dirent *ptr; dir = opendir(path); ...

    C语言 遍历一个文件夹的所有文件以及函数strstri不区分大小写查找字符串

     

    一、遍历一个文件夹的所有文件代码

    int  listallfilename(const char* path)
    {
    	DIR    *dir;
        struct    dirent    *ptr;
        dir = opendir(path);
        while((ptr = readdir(dir)) != NULL)
        {
            printf("path=%s,d_name: %s\n",path,ptr->d_name);
    	}
        closedir(dir);
    	return 0;
    }

    二、函数strstri不区分大小写查找字符串c代码

    
    char* strstri(char * inBuffer, char * inSearchStr)
    {
        char*  currBuffPointer = inBuffer;
    
        while (*currBuffPointer != 0x00)
        {
            char* compareOne = currBuffPointer;
            char* compareTwo = inSearchStr;
            //统一转换为小写字符
            while (tolower(*compareOne) == tolower(*compareTwo))
            {
                compareOne++;
                compareTwo++;
                if (*compareTwo == 0x00)
                {
                    return (char*) currBuffPointer;
                }
    
            }
            currBuffPointer++; 
        }
        return NULL;
    }

    三、实际应用测试程序

    #include <sys/types.h>
    #include <dirent.h>
    #include <unistd.h>
    #include <stdio.h>
    #include <stdbool.h>
    
    struct rk3288_display_devices
    {
    	bool hdmi;
    	bool lvds;
    	bool mipi;
    	bool edp;
    };
    
    struct rk3288_display_devices m_display_devices={0,0,0,0};
    
    char* strstri( char*  inBuffer,  const char* inSearchStr)
    {
        const char*  currBuffPointer = inBuffer;
    
        while (*currBuffPointer != 0x00)
        {
            const char* compareOne = currBuffPointer;
            const char* compareTwo = inSearchStr;
            while (tolower(*compareOne) == tolower(*compareTwo))
            {
                compareOne++;
                compareTwo++;
                if (*compareTwo == 0x00)
                {
                    return (char*) currBuffPointer;
                }
    
            }
            currBuffPointer++; 
        }
        return NULL;
    }
    
    
    int  check_rk3288_drm_display_devices(const char* path)
    {
    	DIR    *dir;
        struct    dirent    *ptr;
        dir = opendir(path);
        while((ptr = readdir(dir)) != NULL)
        {
            printf("path=%s,d_name: %s\n",path,ptr->d_name);
    		if(strstri(ptr->d_name,"hdmi"))
    		{
    			m_display_devices.hdmi=true;
    			printf("hdmi \r\n");
    		}else if(strstri(ptr->d_name,"mipi"))
    		{
    			m_display_devices.mipi=true;
    			printf("mipi \r\n");
    		}else if(strstri(ptr->d_name,"lvds"))
    		{
    			m_display_devices.lvds=true;
    			printf("lvds \r\n");
    		}
    		else if(strstri(ptr->d_name,"edp"))
    		{
    			m_display_devices.edp=true;
    			printf("edp \r\n");
    		}	
    	}
        closedir(dir);
    	return 0;
    }
    int main(){
    	check_rk3288_drm_display_devices("/sys/class/drm/");
        return 0;
    
    }

    四、android机子运行结果

    xxx:/ # test_c
    path=/sys/class/drm/,d_name: .
    path=/sys/class/drm/,d_name: ..
    path=/sys/class/drm/,d_name: card0-HDMI-A-1
    hdmi
    path=/sys/class/drm/,d_name: card0
    path=/sys/class/drm/,d_name: renderD128
    path=/sys/class/drm/,d_name: card0-LVDS-1
    lvds
    path=/sys/class/drm/,d_name: controlD64
    path=/sys/class/drm/,d_name: version
    xxx:/ # ls -a /sys/class/drm/
    . .. card0 card0-HDMI-A-1 card0-LVDS-1 controlD64 renderD128 version
    xxx:/ #

     

    展开全文
  • C语言遍历目录文件并排序

    千次阅读 2019-01-02 14:29:31
    有时候需要遍历目录文件,但是默认的函数并不支持指定排序的功能,现在介绍一种排序的遍历目录方式,默认按照文件名的数字进行排序 window版本 string split_pathexe(string szFullPath)//获取文件名 {  char ...
  • 在这里我们重点介绍遍历字符串的三种方法。... 我们知道,在C语言里有一个函数是“atoi”,它可以把字符串转换成整型数,包含在头文件stdlib.h中。以下是我们使用了这个函数的代码。 [objc]view plaincopy ...
  • C语言遍历文件夹内容

    2012-11-17 12:20:00
    1、函数介绍 func.h /* * 文件名称:filename.h * 文件标识:见配置管理计划书 * 摘 要:遍历某文件加下%i_%i_%i_%i_%i.txt格式的文件,存储到数组中 * * 当前版本:1.0 * 作 者:whl * 完成日期:...
  • 给定一个包含以下十六进制代码的文件:0B 00 00 00 00 00 20 41我正在尝试...这是我使用迭代器构造函数从两个std :: istream_iterators创建向量的代码using Bytes = std::vector;using ByteItr = std::istream_it...
  • 主要用到的函数/function. These should get you started: opendir() readdir() closedir() fopen() fread() fwrite() fclose() See other C IO functions. 参考: How to read all files in a folder using C 转载...
  • 最近项目中要用到c遍历mongodb数据库中所有集合名,从网上找了半天也没找到相关资料, 官方c驱动也没提供相应的c api,最后参考matlab驱动获取集合名的函数,改造了一个c获取数据 库所有集合名的函数,下面直接上...
  • 相关函数是opendir -> readdir -> closedir 这样是不能遍历目录中的所有文件。 //LINUX下目录遍历搜索文件程序,支持嵌套目录 #include #include #include <sys/types.h> #include <dirent.h> #include ...
  • 目录函数,所在函数库为dir.h、dos.hintchdir(char *path) 使指定的目录path(如:"C:\\WPS")变成当前的工作目录,成功返回0int findfirst(char *pathname,struct ffblk *ffblk,intattrib)查找指定的文件,成功返回0...
  • #include <stdio.h> #include<io.h> #include<string.h>...//文件夹遍历函数 void Connect(char*,char*,char*);//字符串连接函数 void main() { char a[50]=""; char b[5]="\\*.*...
  • 我的Change函数是先序遍历,小弟刚学实在不知道错在哪里。怎么从先序遍历算法中交换左右孩子,谢谢大神门!!!!! 还有怎么按层次遍历,感觉按层次没有办法用递归算法 如果我要想从大到小的顺序输出二叉排序树的各...
  • #include<stdio.h> #include<stdlib.h> #define MAXSIZE 100 typedef struct BiTNode { char data;... struct BiTNode *lchild,*rchild;...//栈的相关定义及函数 typedef struct { BiTN...
  • 在完成这个遍历删除任务之前,我们要先完成一下准备阶段的任务。最重要的就是**_**finddata_t结构体的使用和remove()以及rmdir()函数的使用。 首先remove()函数是用来删除文件的 头文件:#include <stdio...
  • C语言二叉树前序遍历C语言二叉树前序遍历完整源码(定义,实现,main函数测试) C语言二叉树前序遍历完整源码(定义,实现,main函数测试) #include <iostream> struct TreeNode { int data; TreeNode* left...
  • C语言BST的遍历C语言BST的遍历完整源码(定义,实现,main函数测试) C语言BST的遍历完整源码(定义,实现,main函数测试) #include <iostream> struct Node { int data; Node *left; Node *right; }; ...
  • 遍历目录需要的函数有:DIR * opendir(const char * name);struct dirent * readdir(DIR * dir);closedir(const char * name);其中:readdir()返回参数dir目录流的下个目录进入点。结构dirent定义如下:struct ...
  • 递归函数 函数自身调用自身,必须有结束条件退出循环 案例 实现字符串逆序遍历 实现斐波那契数列 代码示例: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<string.h> #include<...
  • select函数委托内核去监控是否有可读的fd。如果监控到服务器fd,那么调用accept,并将客户端...缺点是每次调用select,都要把fd集合从用户态拷贝到内核区,同时每次都需要在内核中遍历fd集合。fd集合默认大小很小,W...
  • strlen实现: 1 int my_strlen(char *str) 2 { 3 char *tmp = str; 4 while (*str) 5 { 6 str++; 7 } 8 return str - tmp; ...字符串遍历: 1 void stringDis(char *str) 2 {...
  • C语言函数返回二维数组讨论

    千次阅读 2020-08-22 20:41:08
    C语言中,在子函数中将一个二维数组返回 都知道,在子函数中,一定不能返回一个局部变量的指针,局部变量在子函数中进行创建,子函数调用结束后,该指针将被释放掉。 如果被指针所指向的该内存空间被别的程序占用着...
  • (我是在学非递归遍历二叉树时看到的) Status Visit(TElemType e){ printf("%c\n",e); return OK; } Status InOrderTraverse(BiTree T ,Status(*Visit)(TElemType e)){ SqStack S; InitStack(S); Push(S...
  • 1. main()函数部分:获取当前程序运行路径,将其整理传递给主要功能函数。 int main( int argc, char * argv[] ) { byte pcFolderPath[CUR_PATH_MAX] = { '\0' }; uint32 u32Circle = 0; uint32 u32...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,050
精华内容 420
关键字:

c语言遍历函数

c语言 订阅