当前位置: 首页 > news >正文

C语言实现顺序存储结构

本实验基于数据结构中的线性表,使用顺序存储结构。实现C语言的通讯表。

代码如下:


#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define maxsize 20//定义最大容量//有什么需要帮助可以加企鹅号:2758566124//使用线性表的顺序存储--实现通讯录
typedef struct//定义数据类型
{int id;char name[20];int phone;
}Data;typedef struct//定义顺序表
{Data* elem;//初始地址int length;
}SqList;int initList(SqList* L)
{L->elem = (Data*)malloc(maxsize);//动态创建if (!L->elem){printf("创建失败\n");return -1;}L->length = 0;//表的长度return 0;
}int ListInsert(SqList* L)
{if (L->length == maxsize){printf("空间已满\n");return -1;}printf("id:");scanf("%d", &L->elem[L->length].id);//使用length来当数组下标printf("name:");scanf("%s", L->elem[L->length].name);//name是字符数组不需要取地址符printf("phone:");scanf("%d", &L->elem[L->length].phone);L->length++;return 0;
}int deleteList(SqList* L)
{if (L->length == 0){printf("没有人员可以删除\n");return -1;}printf("请输入你想删除的名字:");char name[20];scanf("%s", name);for (int i = 0; i < L->length; i++){if (strcmp(name, L->elem[i].name) == 0)//字符串的比较{for (int j=i;j<L->length-1;j++){L->elem[j].id = L->elem[j + 1].id;L->elem[j].phone = L->elem[j + 1].phone;strcpy(L->elem[j].name, L->elem[j + 1].name);}printf("删除成功\n");L->length--;return 0;}}printf("删除失败\n");return 0;
}int SeekList(SqList* L)
{printf("请输入你想查找的名字:");char name[20];scanf("%s", name);for (int i = 0; i < L->length; i++){if (strcmp(name, L->elem[i].name) == 0)//字符串的比较{printf("%s的电话为:%d\n", L->elem[i].name,L->elem[i].phone);return 0;}}printf("未找到该人\n");return 0;
}int printList(SqList* L)
{if (L->length == 0){printf("没有元素\n");return 0;}for (int i = 0; i < L->length; i++){printf("id:%d\t",L->elem[i].id);printf("name:%s\t", L->elem[i].name);printf("phone:%d\n", L->elem[i].phone);}return 0;
}void menu()
{printf("1.添加人员信息\n");printf("2.删除人员信息\n");printf("3.查找人员信息\n");printf("4.显示所有人员信息\n");printf("5.退出\n");
}int main()
{SqList L;//定义顺序表initList(&L);//初始化顺序表while (1){menu();printf("请输入你的选择:");int chose;scanf("%d", &chose);switch(chose){case 1:ListInsert(& L);break;case 2:deleteList(&L);break;case 3:SeekList(&L);break;case 4:printList(&L);break;default:printf("输入错误,重新输入\n");break;}}return 0;
}

相关文章:

  • PostgreSQL中的权限管理简介
  • Python爬虫(35)Python爬虫高阶:基于Docker集群的动态页面自动化采集系统实战
  • Terraform创建阿里云基础组件资源
  • Java SpringBoot 扣子CozeAI SseEmitter流式对话完整实战 打字机效果
  • Android 网络全栈攻略(五)—— 从 OkHttp 拦截器来看 HTTP 协议二
  • 使用OpenSSL生成根证书并自签署证书
  • 数据结构(6)线性表-队列
  • 【leetcode】3356. 零数组变换②
  • 字节跳动旗下火山引擎都覆盖哪些领域
  • 四、GPU是如何成为当前电脑中不可或缺的一部分的,opengl在其中起到了什么效果
  • 基于SpringMVC的动态时钟设计
  • youyu:91501
  • 学习黑客Nmap 是什么?
  • React从基础入门到高级实战:React 基础入门 - 简介与开发环境搭建
  • [逻辑回归]机器学习-part11
  • 相机--基础
  • Widget进阶
  • Python训练营打卡 Day25
  • 5.2.3 使用配置文件方式整合MyBatis
  • 《数据结构初阶》【八大排序——巅峰决战】
  • 免费主题wordpress/seo研究中心怎么了
  • 企业网站策划书ppt/如何申请一个网站域名
  • 婚纱网站策划书模板下载/短链接在线生成
  • web 开发 网站开发/写一篇软文1000字
  • 旅游商业网站策划书/360竞价推广客服电话
  • 网站开发什么语言比较好/湖南网站推广公司