c语言顺序表

2023-11-11

  •  1.创建顺序表(产生随机数) 。
  •  2.查找元素的位置。
  •  3.插入元素。
  •  4.删除元素。
  •  5. 输出元素 。
  •  6.1 颜色和坐标函数。
  •  6.2 菜单
  •  6.3蛇
  •  7.完整代码
  •  8.效果图片

开始:库函数,创建结构体。

#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<windows.h>
#include<string.h>
#include<conio.h>

#define MAXSIZE 1000                                   
#define OK 1
#define ERROR 0

typedef int ElemType;
typedef int Status;


typedef struct{
	ElemType data[MAXSIZE];                                     //数据 
	int Length;                                                 //长度 
}SqList;                                                        //结构体变量名 

1.创建顺序表(产生随机数) 。

Status CreateList(SqList *L,int n)                         //创建顺序表 
{
	int i;
	srand(time(0));
	L->Length=0; 
	for(i=0;i<n;i++)
	{
		L->data[i]=rand()%100+1;
		L->Length++;
	}
}

 2.查找元素的位置。

Status LocateList(SqList L,ElemType e)                      //输入元素,查找位置。 
{
	int i;
	for(i=0;i<L.Length;i++)
	        if(L.data[i]==e)
	        return i+1;
	return ERROR;
} 

 3.插入元素。

Status ListInsert(SqList *L,int i,ElemType e)                //插入元素 i是插入的位置   e是新元素。 
{
	int k;
	if(L->Length==MAXSIZE)                                  //数组满,则不能插入 
	         return ERROR;
	
    if(i==L->Length+1)                                      //插入到最后一位。 
	{
		L->data[i-1]=e;
		L->Length++;
		return OK;
	 } 
	
	 if(i<1||i>L->Length+1)                                 //插入到比最后一位还要多一位,例:只有10位元素,你插到12位去,则不行了。 
	        return ERROR;
	 
	 if(i<L->Length)                                       //插入到中间任意一位。 
	 {
	 	for(k=L->Length-1;k>=i-1;k--)
	 	L->data[k+1]=L->data[k];
	 }
	 
	 L->data[i-1]=e;
	 L->Length++;
	 return OK;
}

 4.删除元素。

Status ListDelete(SqList *L,int i,ElemType *e)                       //输入元素位置,删除元素。 
{
         	int k;
	if(L->Length==0)
	     return ERROR;
	
	if(i<1||i>L->Length)
          return ERROR;	
          
     *e=L->data[i-1]; 
     
     if(i<L->Length)
     {
     	for(k=i;k<L->Length;k++)
     	L->data[k-1]=L->data[k];
	 }
	 L->Length--;
	 return OK;
 	  
}

5.输出元素 。

 
Status visit(ElemType c,int i)                              //输出元素 
{
	printf("第%2d元素:L->data[%d]=%d\n",i,i,c);
	return OK;
}

Status ListTraverse(SqList L)                  
{
	int i;
	for(i=0;i<L.Length;i++)
	visit(L.data[i],i+1);
	printf("\n");
	return OK;
}

6.接下来是一些无关操作,与主内容没有多大关系。

6.1 (颜色和坐标)函数。

int color(int c)                                                           //更改文字颜色。
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);            //SetConsoleTextAttribute设置控制台窗口字体 
	return 0;                                                             //其中GetStdHandle是获得输入、输出或错误得屏幕缓冲的句柄 
}    
                                                                 //STD_OUTPUT_HANDLE 标准输出的句柄 
void gotoxy(int x,int y)
{
	COORD pos;             //COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标.
	pos.X=x;
	pos.Y=y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);      //SetConsoleCursorPosition放置控制台光标位置 
}

6.2 菜单

void  menu()              //菜单 
{
	/*
	printf("\n\n");color(15); 
	printf("\t\t|------------------顺序表---------------|\n");
	printf("\t\t|\t\t                        |\n");color(11);
	printf("\t\t|\t\t 1.创建顺序表 \t        |\n");color(15);
	printf("\t\t|\t\t 2.查找元素  \t        |\n");color(10);
	printf("\t\t|\t\t 3.插入元素  \t        |\n");color(8);
	printf("\t\t|\t\t 4.删除元素  \t        |\n");color(13);
	printf("\t\t|\t\t 0.退出系统  \t        |\n");color(12);
	printf("\t\t请选择(0-4):");
	*/
	int i,j; 
	gotoxy(43,18); 
    color(11);
    printf(" 顺  序   表   操   作");
    color(14);
    for(i=20;i<=26;i++)
    {
    	for(j=27;j<=74;j++)
    	{
    		gotoxy(j,i);
    		if(i==20||i==26)
    		{
    			printf("_");
			}
			else if(j==27||j==74)
			{
				printf("|");
			}
		}
	}
	color(12);
	gotoxy(35,22);
	printf("1.创建顺序表");
	gotoxy(55,22);
	printf("2.查找元素");
	gotoxy(35,24);
	printf("3.插入元素");
	gotoxy(55,24);
    printf("4.删除元素"); 
	gotoxy(35,26);
	printf("0.退出程序"); 
	gotoxy(29,27);
	color(3);
	printf("请选择【1 2 3 4 0】:[ ]\b\b");
}

 6.2菜单。


void  menu()              //菜单 
{
	/*
	printf("\n\n");color(15); 
	printf("\t\t|------------------顺序表---------------|\n");
	printf("\t\t|\t\t                        |\n");color(11);
	printf("\t\t|\t\t 1.创建顺序表 \t        |\n");color(15);
	printf("\t\t|\t\t 2.查找元素  \t        |\n");color(10);
	printf("\t\t|\t\t 3.插入元素  \t        |\n");color(8);
	printf("\t\t|\t\t 4.删除元素  \t        |\n");color(13);
	printf("\t\t|\t\t 0.退出系统  \t        |\n");color(12);
	printf("\t\t请选择(0-4):");
	*/
	int i,j; 
	gotoxy(43,18); 
    color(11);
    printf(" 顺  序   表   操   作");
    color(14);
    for(i=20;i<=26;i++)
    {
    	for(j=27;j<=74;j++)
    	{
    		gotoxy(j,i);
    		if(i==20||i==26)
    		{
    			printf("_");
			}
			else if(j==27||j==74)
			{
				printf("|");
			}
		}
	}
	color(12);
	gotoxy(35,22);
	printf("1.创建顺序表");
	gotoxy(55,22);
	printf("2.查找元素");
	gotoxy(35,24);
	printf("3.插入元素");
	gotoxy(55,24);
    printf("4.删除元素"); 
	gotoxy(35,26);
	printf("0.退出程序"); 
	gotoxy(29,27);
	color(3);
	printf("请选择【1 2 3 4 0】:[ ]\b\b");
}

 6.3蛇。

void flower()           //绘制字符花 
{
       gotoxy(35,1);
       color(6);
       printf("/^\\/^\\");

       gotoxy(34,2);
       printf("|_| o|");

       gotoxy(33,2);
       color(2);
       printf("_");

       gotoxy(25,3);
       color(12);
       printf("\\/");
       
       gotoxy(31,3);
       color(2);
       printf("/");

       gotoxy(37,3);
       color(6);
       printf("\\_/");

       gotoxy(41,3);
       color(10);
       printf("\\");

       gotoxy(26,4);
       color(12);
       printf("\\_____");

       gotoxy(32,4);
       printf("_______/");

       gotoxy(31,4);
       color(2);
       printf("|");

       gotoxy(43,4);
       color(10);  
       printf("\\");

       gotoxy(32,5);
       color(2);
       printf("\\______");

       gotoxy(44,5);
       color(10);
       printf("\\");

       gotoxy(39,6); 
	   printf("|     |                  \\");

       gotoxy(38,7); 
       printf("/     /                  \\");

       gotoxy(37,8);
       printf("/     /                    \\  \\");

       gotoxy(35,9); 
	   printf("/     /                      \\   \\");

       gotoxy(34,10); 
       printf("/     /                        \\   \\");

       gotoxy(33,11); 
       printf("/     /          _----_          \\    \\");

       gotoxy(32,12); 
       printf("/     /       _-~       ~-_         |    |");               

       gotoxy(31,13); 
       printf("(     (      _-~    _--_   ~-_      _/    |");

       gotoxy(32,14);
	   printf("\\     ~-____-~ _-~    ~-_    ~-_-~      /");

       gotoxy(33,15);
	   printf("~-_         _-~       ~-_          _-~");
	   
       gotoxy(35,16);
       printf("~--______-~            ~-______-~");
 } 

                                                                       主函数

int main()
{
    flower();
    SqList L;
	ElemType e;
	Status i,n;
	
    int s;
    int z;

	menu();	
    scanf("%d",&s);
     color(15);
    while(s)
    {
    	switch(s)
    	{
    			case 1:{
    				
				  printf("请输入你想创建多少位数的顺序表:");
                    scanf("%d",&n);
		           CreateList(&L,n);
			          printf("显示出结果:\n");
			          //  ListTraverse(L);
			          break; 
				}
				
				
			case 2:	{
				    color(11);
			        char ans='Y'; 
			        while(ans=='Y'||ans=='y')
			        {
			        	printf("请输入你要查找元素的位置的元素(输出0代表该元素不存在):");
			        	scanf("%d",&e);
			        	i=LocateList(L,e);
			        	if(i)
			        	     printf("\n元素%d位于:%d\n是否继续查找(是:Y/y,任意值退出):",e,i); 
			        	else
			        		printf("查找失败!是否重新输入(是:Y/y,任意值退出):");
						scanf("%s",&ans); 
						printf("\n");
					}		
							
			        break;
			}

			        
			case 3: {
				color(10);
				char ans='Y';
				while(ans=='y'||ans=='Y')
				{
			      	printf("请输入插入元素位置:");
			              scanf("%d",&i); 
					printf("请输入新元素:");
					      scanf("%d",&e);
					z=ListInsert(&L,i,e);
					
					if(z){
       	              printf("显示插入结果:\n"); 
       	                             ListTraverse(L);
       	               printf("是否继续插入(是:Y/y,任意值退出):"); 
			        }	 
			        else	
		              printf("插入失败!是否继续插入(是:Y/y,任意值退出):");
		              
		            scanf("%s",&ans); 
					printf("\n");
			       }
				      break;
				      
			    }
		            
		    case 4: {
		    	     color(8);
		    	     char ans='Y';
		    	    while(ans=='y'||ans=='Y')
					{
						printf("请输入你要删除元素的位置的元素:");
	                             scanf("%d",&i);
	                        z=ListDelete(&L,i,&e);
	                if(z){
	                	printf("删除第%d位置的元素值为:%d\n",i,e); 
	                      	printf("依次输出L的元素:\n");
                              ListTraverse(L);
                        printf("是否继续插入(是:Y/y,任意值退出):"); 
					} 
	                else
			          printf("删除失败!是否继续(是:Y/y,任意值退出):");
			          
			          
			           scanf("%s",&ans); 
					    printf("\n");
			          
			      }
			         
					break;
				   }
				  
			default :
			            break;
			
			 			 
		}
		system("cls");
		 ListTraverse(L);
		 
		menu();
	
		scanf("%d",&s);
		
	}
	
	
	
	
}

                                                                  完整代码

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
#include<windows.h>
#include<string.h>
#include<conio.h>

#define MAXSIZE 1000                                   
#define OK 1
#define ERROR 0

typedef int ElemType;
typedef int Status;


typedef struct{
	ElemType data[MAXSIZE];                                     //数据 
	int Length;                                                 //长度 
}SqList;                                                        //结构体变量名 


Status CreateList(SqList *L,int n)                         //创建顺序表 
{
	int i;
	srand(time(0));
	L->Length=0; 
	for(i=0;i<n;i++)
	{
		L->data[i]=rand()%100+1;
		L->Length++;
	}
}


 
Status visit(ElemType c,int i)                              //输出元素 
{
	printf("第%2d元素:L->data[%d]=%d\n",i,i,c);
	return OK;
}

Status ListTraverse(SqList L)                  
{
	int i;
	for(i=0;i<L.Length;i++)
	visit(L.data[i],i+1);
	printf("\n");
	return OK;
}



Status LocateList(SqList L,ElemType e)                      //输入元素,查找位置。 
{
	int i;
	for(i=0;i<L.Length;i++)
	        if(L.data[i]==e)
	        return i+1;
	return ERROR;
} 



Status ListInsert(SqList *L,int i,ElemType e)                //插入元素 i是插入的位置   e是新元素。 
{
	int k;
	if(L->Length==MAXSIZE)                                  //数组满,则不能插入 
	         return ERROR;
	
    if(i==L->Length+1)                                      //插入到最后一位。 
	{
		L->data[i-1]=e;
		L->Length++;
		return OK;
	 } 
	
	 if(i<1||i>L->Length+1)                                 //插入到比最后一位还要多一位,例:只有10位元素,你插到12位去,则不行了。 
	        return ERROR;
	 
	 if(i<L->Length)                                       //插入到中间任意一位。 
	 {
	 	for(k=L->Length-1;k>=i-1;k--)
	 	L->data[k+1]=L->data[k];
	 }
	 
	 L->data[i-1]=e;
	 L->Length++;
	 return OK;
}


Status ListDelete(SqList *L,int i,ElemType *e)                       //输入元素位置,删除元素。 
{
         	int k;
	if(L->Length==0)
	     return ERROR;
	
	if(i<1||i>L->Length)
          return ERROR;	
          
     *e=L->data[i-1]; 
     
     if(i<L->Length)
     {
     	for(k=i;k<L->Length;k++)
     	L->data[k-1]=L->data[k];
	 }
	 L->Length--;
	 return OK;
 	  
}

                /*添加一些好玩的程序,以本程序主要内容无关 */
                
int color(int c)                                                           //更改文字颜色。
{
	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c);            //SetConsoleTextAttribute设置控制台窗口字体 
	return 0;                                                             //其中GetStdHandle是获得输入、输出或错误得屏幕缓冲的句柄 
}    
                                                                 //STD_OUTPUT_HANDLE 标准输出的句柄 
void gotoxy(int x,int y)
{
	COORD pos;             //COORD是Windows API中定义的一种结构,表示一个字符在控制台屏幕上的坐标.
	pos.X=x;
	pos.Y=y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);      //SetConsoleCursorPosition放置控制台光标位置 
}

void  menu()              //菜单 
{
	/*
	printf("\n\n");color(15); 
	printf("\t\t|------------------顺序表---------------|\n");
	printf("\t\t|\t\t                        |\n");color(11);
	printf("\t\t|\t\t 1.创建顺序表 \t        |\n");color(15);
	printf("\t\t|\t\t 2.查找元素  \t        |\n");color(10);
	printf("\t\t|\t\t 3.插入元素  \t        |\n");color(8);
	printf("\t\t|\t\t 4.删除元素  \t        |\n");color(13);
	printf("\t\t|\t\t 0.退出系统  \t        |\n");color(12);
	printf("\t\t请选择(0-4):");
	*/
	int i,j; 
	gotoxy(43,18); 
    color(11);
    printf(" 顺  序   表   操   作");
    color(14);
    for(i=20;i<=26;i++)
    {
    	for(j=27;j<=74;j++)
    	{
    		gotoxy(j,i);
    		if(i==20||i==26)
    		{
    			printf("_");
			}
			else if(j==27||j==74)
			{
				printf("|");
			}
		}
	}
	color(12);
	gotoxy(35,22);
	printf("1.创建顺序表");
	gotoxy(55,22);
	printf("2.查找元素");
	gotoxy(35,24);
	printf("3.插入元素");
	gotoxy(55,24);
    printf("4.删除元素"); 
	gotoxy(35,26);
	printf("0.退出程序"); 
	gotoxy(29,27);
	color(3);
	printf("请选择【1 2 3 4 0】:[ ]\b\b");
}

void flower()           //绘制字符花 
{
       gotoxy(35,1);
       color(6);
       printf("/^\\/^\\");

       gotoxy(34,2);
       printf("|_| o|");

       gotoxy(33,2);
       color(2);
       printf("_");

       gotoxy(25,3);
       color(12);
       printf("\\/");
       
       gotoxy(31,3);
       color(2);
       printf("/");

       gotoxy(37,3);
       color(6);
       printf("\\_/");

       gotoxy(41,3);
       color(10);
       printf("\\");

       gotoxy(26,4);
       color(12);
       printf("\\_____");

       gotoxy(32,4);
       printf("_______/");

       gotoxy(31,4);
       color(2);
       printf("|");

       gotoxy(43,4);
       color(10);  
       printf("\\");

       gotoxy(32,5);
       color(2);
       printf("\\______");

       gotoxy(44,5);
       color(10);
       printf("\\");

       gotoxy(39,6); 
	   printf("|     |                  \\");

       gotoxy(38,7); 
       printf("/     /                  \\");

       gotoxy(37,8);
       printf("/     /                    \\  \\");

       gotoxy(35,9); 
	   printf("/     /                      \\   \\");

       gotoxy(34,10); 
       printf("/     /                        \\   \\");

       gotoxy(33,11); 
       printf("/     /          _----_          \\    \\");

       gotoxy(32,12); 
       printf("/     /       _-~       ~-_         |    |");               

       gotoxy(31,13); 
       printf("(     (      _-~    _--_   ~-_      _/    |");

       gotoxy(32,14);
	   printf("\\     ~-____-~ _-~    ~-_    ~-_-~      /");

       gotoxy(33,15);
	   printf("~-_         _-~       ~-_          _-~");
	   
       gotoxy(35,16);
       printf("~--______-~            ~-______-~");
 } 


int main()
{
    flower();
    SqList L;
	ElemType e;
	Status i,n;
	
    int s;
    int z;

	menu();	
    scanf("%d",&s);
     color(15);
    while(s)
    {
    	switch(s)
    	{
    			case 1:{
    				
				  printf("请输入你想创建多少位数的顺序表:");
                    scanf("%d",&n);
		           CreateList(&L,n);
			          printf("显示出结果:\n");
			          //  ListTraverse(L);
			          break; 
				}
				
				
			case 2:	{
				    color(11);
			        char ans='Y'; 
			        while(ans=='Y'||ans=='y')
			        {
			        	printf("请输入你要查找元素的位置的元素(输出0代表该元素不存在):");
			        	scanf("%d",&e);
			        	i=LocateList(L,e);
			        	if(i)
			        	     printf("\n元素%d位于:%d\n是否继续查找(是:Y/y,任意值退出):",e,i); 
			        	else
			        		printf("查找失败!是否重新输入(是:Y/y,任意值退出):");
						scanf("%s",&ans); 
						printf("\n");
					}		
							
			        break;
			}

			        
			case 3: {
				color(10);
				char ans='Y';
				while(ans=='y'||ans=='Y')
				{
			      	printf("请输入插入元素位置:");
			              scanf("%d",&i); 
					printf("请输入新元素:");
					      scanf("%d",&e);
					z=ListInsert(&L,i,e);
					
					if(z){
       	              printf("显示插入结果:\n"); 
       	                             ListTraverse(L);
       	               printf("是否继续插入(是:Y/y,任意值退出):"); 
			        }	 
			        else	
		              printf("插入失败!是否继续插入(是:Y/y,任意值退出):");
		              
		            scanf("%s",&ans); 
					printf("\n");
			       }
				      break;
				      
			    }
		            
		    case 4: {
		    	     color(8);
		    	     char ans='Y';
		    	    while(ans=='y'||ans=='Y')
					{
						printf("请输入你要删除元素的位置的元素:");
	                             scanf("%d",&i);
	                        z=ListDelete(&L,i,&e);
	                if(z){
	                	printf("删除第%d位置的元素值为:%d\n",i,e); 
	                      	printf("依次输出L的元素:\n");
                              ListTraverse(L);
                        printf("是否继续插入(是:Y/y,任意值退出):"); 
					} 
	                else
			          printf("删除失败!是否继续(是:Y/y,任意值退出):");
			          
			          
			           scanf("%s",&ans); 
					    printf("\n");
			          
			      }
			         
					break;
				   }
				  
			default :
			            break;
			
			 			 
		}
		system("cls");
		 ListTraverse(L);
		 
		menu();
	
		scanf("%d",&s);
		
	}
}

效果图片:

主要页面
创建10位数的顺序表

2.查找元素

3.插入元素

4.删除元素

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

c语言顺序表 的相关文章

随机推荐

  • Visual Studio安装时,不能更改共享组件、工具和SDK的位置

    之前安装的时候把安装路径改了 之后卸载不干净 注册表还留有缓存 不能更改位置 如下图 微软官方提供的卸载工具 TotalUninstaller 卸载不干净可以用这个工具 解决办法 更改注册表 HKEY LOCAL MACHINE SOFTW
  • KNN算法分类问题实现介绍和使用

    KNN算法详解 sklearn包介绍 一 sklearn包使用KNN算法 1 准备数据 X np array 5 1 3 5 1 4 0 2 4 9 3 1 4 0 2 4 7 3 2 1 3 0 2 4 6 3 1 1 5 0 2 5 3
  • uniapp的websocket的使用

    1 websocket的封装 uniapp获取websocket返回来的数据可以采用Vuex进行存储 class websocketUtil constructor url time url 是请求的后端的地址 time 是心跳包的时间 t
  • 【MAC终端UI自动化】获取当前最前端的应用程序

    目的 在操作当前应用后 弹出一个系统弹窗 想定位到这个弹窗 方法一 没搞定 期待大佬解答 想到atomac有个获取当前最前端的应用程序的方法getFrontmostApp a atomac getFrontmostApp print a 返
  • Proxy error: Could not proxy request... 问题解决

    背景 最近在项目中发现一个问题 每次npm run serve 时都是正常的 每次重新编译后就会有下面的提示 Proxy error Could not proxy request Manage repairDelivery settlem
  • cppkafka是什么 和librdkafka关系

    最近日志审计对接日志中心的开发 需要设计kafka相关的一些东西 因此了解了一些 在github 的 kafka官网上看到有 Language bindings 不太清楚其中的 cppkafka 是什么东西 能用来做什么 多方了解后才明白
  • C语言树莓派PICO,RP2040(树莓派Pico) PIO – 实例分析&编程

    这次拿来开刀的是WS2812 具体代码可见 gt https github com raspberrypi pico examples blob master pio ws2812 ws2812 pio program ws2812 sid
  • 什么是边缘计算网关?

    边缘计算网关 简称 边缘网关 将云端功能扩展到本地的边缘设备 使边缘设备能够快速自主地响应本地事件 提供低延时 低成本 隐私安全 本地自治的本地计算服务 同时所有服务都以 Docker 镜像方式安装 真正做到了跨平台 部署快捷 易管理 在链
  • MYSQL----union与limit

    union 1 union操作符用于合并两个或多个 SELECT 语句的结果集 2 union内部的 SELECT 语句必须拥有相同数量的列 列也必须拥有相似的数据类型 同时 每条 SELECT 语句中的列的顺序必须相同 limit 1 l
  • Jmeter使用篇(六) : Jmeter集合点

    配置Jmeter集合点的方法 1 需要设置集合点 进行并发同步 则需要在请求之前进行集合点的设置 具体位置在 添加 定时器 Synchronizing Timer 同步定时器
  • 01-LED-Blink-Demo(开发环境esp-idf)

    Blink Example This example code is in the Public Domain or CC0 licensed at your option Unless required by applicable law
  • 使用 STM32 的 SPI 来读取外部 SPI FLASH 芯片(W25Qxx)

    SPI简介 SPI 是英语 Serial Peripheral interface 的缩写 顾名思义就是串行外围设备接口 是 Motorola 首先在其 MC68HCXX 系列处理器上定义的 SPI 接口主要应用在 EEPROM FLASH
  • LeetCode刷题笔记:1619.删除某些元素后的数组均值

    1 问题描述 给你一个整数数组 arr 请你删除最小 5 的数字和最大 5 的数字后 剩余数字的平均值 与 标准答案 误差在 10 5 的结果都被视为正确结果 2 解题思路 先排序 再从数组下标5 处开始遍历 到数组下标95 截止 3 代码
  • 设计模式1:单例模式、工厂、创建者、原型

    设计模式 一种抽象 总结 Gang of Four GOF 分类 3大类23种 创建型模式 结构型模式和行为型模式 几个设计原则 接口分离 依赖倒置 原则 编程面向接口而不是实现 单一原则 单一部分完成特定的分类功能 封装 开闭原则 对修改
  • Ubuntu14/16 PCL1.7/1.8 opencv2/3/4 编译安装共存

    为了使用cuda和pcl共同编程 而系统带的pcl1 7不带gpu模块 故编译安装pcl完全版 与系统pcl1 7共存 不同分发版本Ubuntu应该没有什么区别 不同版本pcl编译和使用道理也都基本相同 opencv也是一样的道理 PCL
  • 嵌入式系统原理及应用(基于STM32)救急专用

    目录 第一章 嵌入式系统概述 第二章 嵌入式系统基础知识 第三章 STM32系列微控制器 第四章 通用输入输出端口 第五章 异常与中断处理 第六章 定时器 第七章 串行通信接口 第八章 模数转换器 数模转换器 第一章 嵌入式系统概述 嵌入式
  • 剑指offer.13.机器人的运动范围之DFS、BFS搜索

    机器人的运动范围 前言 一 DFS 1 思想 2 源码 二 BFS 1 源码 2 改进源码BFS 总结 前言 对于矩阵搜索问题 就像图的搜索一样 熟练掌握DFS BFS是关键 一 DFS 1 思想 通过DFS去寻找满足条件的格子 而已经访问
  • 用了SSD开机还是很慢?这些拖慢开机的原因你知道吗

    一 4K未对齐 如今新装机多半会选择安装SSD 固态硬盘 而要想让固态硬盘发挥应有的实力 4K对齐是一项必做的操作 4K对齐需要在分区环节完成 可以借助Win10安装程序 使用Win10安装程序分区后自动为4K对齐状态 或者专用的分区软件
  • 存储系统概述——SRAM静态随机存储器

    一 存储系统的概述 目前存储器的特点是 速度快的存储器价格贵 容量小 价格低的存储器速度慢 容量大 在计算机存储器体系结构设计时 我们希望存储器系统的性能高 价格低 那么在存储器系统设计时 应当在存储器容量 速度和价格方面的因素作折中考虑
  • c语言顺序表

    1 创建顺序表 产生随机数 2 查找元素的位置 3 插入元素 4 删除元素 5 输出元素 6 1 颜色和坐标函数 6 2 菜单 6 3蛇 7 完整代码 8 效果图片 开始 库函数 创建结构体 include