c/c++语言开发共享C语言代码详细描述顺序线性表

目录代码内容包括:1.表的创建2.增删改查插3.界面跳转代码实现如下:#include <stdio.h>#include<stdlib.h>#define maxsize 2

目录

代码内容包括:

1.表的创建

2.增删改查插

3.界面跳转

代码实现如下:

  #include <stdio.h>  #include<stdlib.h>  #define maxsize 20  typedef int elemtype;//将int类型赋予别名  //创建结构体  typedef struct{  elemtype a[maxsize];//maxsize是给表的一个预估容量  int n;//n是指当前a的元素个数,记录当下表的大小  }seqlist,*pseqlist;//给结构体赋予免费精选名字大全以及创建一个结构体类型的指针    //函数声明  void add(pseqlist l);  void delete(pseqlist l);  void insert(pseqlist l);  void welcome(pseqlist l);  void correct(pseqlist l);  void search(pseqlist l);  void view(pseqlist l);  //表的创建  pseqlist create(){  pseqlist l;  l=(pseqlist)malloc(sizeof(seqlist));  if(l==null){  printf("failuren");//判断创建是否成功  return 0;  }  else{  printf("success!");  l->n=0;  }  return l;  }  //主函数  int main(){  pseqlist head;  head=create();  welcome(head);  system("pause");  return 0;  }  //增添元素  void add(pseqlist l){  	system("cls");  	int k;  	for(k=0;k<l->n;k++){  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  	int adder;  	int choose=0;  	do{  	if(l->n==maxsize){  	printf("表已满,无法添加!n");  	}  	else{  	printf("添加元素:");      scanf("%d",&adder);  	l->a[l->n]=adder;  	l->n++;  	printf("已成功添加:%d 添加后元素个数为:%dnn",l->a[(l->n)-1],l->n);  	}  printf("是否继续添加?n1、继续添加   2、返回主界面n");  scanf("%d",&choose);  system("cls");//表示将当前页面清空  }while(choose==1);  	if(choose==2){  	welcome(l);}  	else welcome(l);  }  //删除  void delete(pseqlist l){  	int j;  	int k;  	int i;  	int choose=0;  	for(k=0;k<l->n;k++){  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  	do{  	system("cls");  	printf("删除界面n");  	for(k=0;k<l->n;k++){  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  	if(l->n==null){  	printf("表为空!");  	break;  	}  	printf("请输入你要删除第几个元素:");  	scanf("%d",&i);  	if(i<1||i>l->n){  	printf("n删除的数据位置有误!n");  	}  	else{  		for(j=i;j<=l->n-1;j++)  		    l->a[j-1]=l->a[j];  		l->n--;  		printf("删除成功!n");  	}  	printf("删除后的元素为:n");  	for(k=0;k<l->n;k++){  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  	printf("是否继续删除?n1.继续删除  2.返回主界面n");  	scanf("%d",&choose);  }while(choose==1);  	if(choose==2){  	welcome(l);}  	else welcome(l);  }  //插入元素  void insert(pseqlist l){  int i;  int item;  int j;  int choose=0;  int choosex;  int k;  system("cls");  if(l->n==null){  			printf("nnn元素为空!是否添加元素?1.是  2.返回主菜单");  			scanf("%d",&choosex);  			if(choosex==1)  			{  				add(l);  			}  			else welcome(l);  		}  for(k=0;k<l->n;k++){  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  do{  printf("插入元素n");  if(l->n==maxsize){  printf("表满!n");  break;  }  printf("请输入你想插入的位置:");  scanf("%d",&i);  system("cls");  if(i<1||i>l->n+1){  printf("n插入位置错误!n");  }  printf("请输入你想插入的数据:");  scanf("%d",&item);  for(j=l->n-1;j>i-2;j--)  		l->a[j+1]=l->a[j];  l->a[i-1]=item;  l->n++;  printf("插入成功!插入后的数据为;n");  for(k=0;k<l->n;k++){  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  printf("n是否继续插入?n1.继续插入  2.返回主界面");  scanf("%d",&choose);  }while(choose==1);  	if(choose==2){  	welcome(l);}  	else welcome(l);  }  //修改元素  void correct(pseqlist l){  	int cn;  	int item;  	int k;  	int choose;  		system("cls");  		if(l->n==null){  			printf("nnn元素为空!是否添加元素?1.是  2.返回主菜单");  			scanf("%d",&choose);  			if(choose==1)  			{  				add(l);  			}  			else welcome(l);  		}  		//*******************************************  	   for(k=0;k<l->n;k++)  	  {       	printf("第%d个元素:%dn",k+1,l->a[k]);         }  	   //********************************************  	   do{  	      printf("请输入你要修改的元素序号:");  	      scanf("%d",&cn);  	      if(cn<1||cn>l->n){  			  printf("输入错误请重新输入:");  		  }  	   }while(cn<1||cn>l->n);  	printf("n请输入你想修改成的数据:");  	scanf("%d",&item);  	l->a[cn-1]=item;  	system("cls");  	printf("修改后的数据为:n");  	for(k=0;k<l->n;k++)  	{  	printf("第%d个元素:%dn",k+1,l->a[k]);  	}  	printf("是否继续修改?1.是  2.返回主菜单");  	scanf("%d",&choose);  	if(choose==1){  	correct(l);  	}  	else welcome(l);  }  //查找元素  void search(pseqlist l){  	int mchoose;  	int choose;  	int choose1;  	int choose2;  	int num;  	int item;  	int i;  	int j=0;  	system("cls");  	if(l->n==null){  			printf("nnn元素为空!是否添加元素?1.是  2.返回主菜单");  			scanf("%d",&choose);  			if(choose==1)  			{  				add(l);  			}  			else welcome(l);  		}  	printf("*****查找方式选择*****nn1.输入序号以寻找对应数据n2.输入数据找到对应的序号n3.返回主菜单n");  	scanf("%d",&mchoose);  	system("cls");  	if(mchoose==3){  	welcome(l);  	}  	if(mchoose==1)  	{  		do  		{  	     printf("请输入序号:");  	     scanf("%d",&num);  	     printf("序号:%d 数据:%dn",num,l->a[num-1]);  	     printf("1.继续输入  2.返回上一级");  		 scanf("%d",&choose2);  	    }while(choose2==1);  	   if(choose2!=1)  	   {  	   search(l);  	   }  	}  	else if(mchoose==2)  	{  		do  	   {  		printf("请输入数据:");  	    scanf("%d",&item);  		for(i=0;i<l->n;i++)  		{  			if(item==l->a[i])  			{  			printf("元素:%d  序号:%dn",i+1,item);j=1;  			}  		}  		if(j==0){printf("您输入的元素不存在!");}          printf("1.继续输入  2.返回上一级");  		scanf("%d",&choose1);  	    }while(choose1==1);  	   if(choose1!=1){  	   search(l);  	   }  	}  	else   	{         search(l);  	}  }  //浏览全部元素  void view(pseqlist l)  {  	int k;  	char choose[10];  	int choosey;  	if(l->n==null)  	  {  			printf("nnn元素为空!是否添加元素?1.是  2.返回主菜单");  			scanf("%d",&choosey);  			if(choosey==1)  			{  				add(l);  			}  			else welcome(l);  		}  	for(k=0;k<l->n;k++)  	  {       	printf("第%d个元素:%dn",k+1,l->a[k]);         }  	printf("输入任意字符以返回菜单");  	scanf("%s",choose);  	getchar();  	if(choose!=null)  	{  		welcome(l);  	}  }  //欢迎界面  void welcome(pseqlist l){  	pseqlist head;  	head=l;  	int welchoose=0;  	system("cls");  printf("ttt***************************************n");  printf("ttttt顺序表功能选择n");  printf("ttttt1.添加元素n");  printf("ttttt2.删除元素n");  printf("ttttt3.插入元素n");  printf("ttttt4.修改元素n");  printf("ttttt5.查找元素n");  printf("ttttt6.浏览元素n");  printf("ttt***************************************n");  scanf("%d",&welchoose);  switch(welchoose){  case 1:add(head);break;  case 2:delete(head);break;  case 3:insert(head);break;  case 4:correct(head);break;  case 5:search(head);break;  case 6:view(head);break;  default :printf("输入错误!");main();break;  }  }  

总结

以上为线性顺序表的基本操作,若发现错误,敬请各位读者指正!

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注<计算机技术网(www.ctvol.com)!!>的更多内容!

需要了解更多c/c++开发分享C语言代码详细描述顺序线性表,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/835385.html

(0)
上一篇 2021年9月26日
下一篇 2021年9月26日

精彩推荐