通讯录(一)

一、Contact.h

1.1.作用 :定义个人信息结构体 peoInfo 和常量。
1.2.代码:

代码如下:

#pragma once

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<assert.h>

#define MAX_NAME 20

#define MAX_PHONE 20

#define MAX_GENDER 10

#define MAX_ADDR 20

typedef struct peoInfo{

char nameMAX_NAME;

int age;

char genderMAX_GENDER;

char addrMAX_ADDR;

char phoneMAX_PHONE;

}peoInfo;

struct SeqList;

二、SeqList.h

2.1.作用 :定义顺序表结构,设置数据类型为 peoInfo,并将顺序表别名为 Contact
2.2.代码

代码如下:

#pragma once

#include"Contact.h"

typedef peoInfo SLDataType;

typedef struct SeqList {

SLDataType* a;

int size;

int capacity;

}SL;
typedef struct SeqList Contact; // 前置声明:告诉编译器有一个叫 SeqList 的结构体,因为 Contact.h 需要被 SeqList.h 包含,而 SeqList 的定义在 SeqList.h 中 为了避免循环依赖,这里只声明,具体定义在 SeqList.h

void SLCheckCapacity(SL* sl);

void SLprint(SL* sl);

void SLInit(SL* sl);

void SLPushFront(SL* sl, SLDataType x);

void SLPushBack(SL* sl, SLDataType x);

void SLInsert(SL* sl, int pos, SLDataType x);

void SLRemoveAll(SL* sl, SLDataType x);

void SLPopFront(SL* sl);

void SLPopBack(SL* sl);

void SLErase(SL* sl, int pos);

//查找元素

int SLFind(SL* sl, SLDataType x);

//修改指定位置的数据

void SLModify(SL* sl, int pos, SLDataType);

三、3-23.c

3.1.作用:实现顺序表的底层增删查改逻辑。
3.2.代码

代码如下:

// 打印单个

void PrintOne(const peoInfo* p) {

printf("%-10s %3d %-6s %-15s %-20s\n", p->name, p->age, p->gender, p->tel, p->addr);

}

// 打印所有

void SLPrint(SL* sl) {

assert(sl);

if (sl->size == 0) {

printf("通讯录为空。\n");

return;

}

printf("\n%-10s %-5s %-6s %-15s %-20s\n", "姓名", "年龄", "性别", "电话", "地址");

printf("------------------------------------------------------------\n");

for (int i = 0; i < sl->size; i++) {

PrintOne(&sl->ai);

}

printf("------------------------------------------------------------\n");

}

相关推荐
apocelipes1 天前
常用编程语言和库的正则表达式性能对比
c语言·c++·python·性能优化·golang·开发工具和环境
CSharp精选营4 天前
关系型 vs 非关系型:从原理到选型,一文搞定数据库核心分类
数据结构·nosql·关系型数据库·非关系型数据库·技术选型
刘马想放假8 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
北域码匠9 天前
冒泡排序太慢?鸡尾酒排序双向优化,原生 C# 零第三方库完整代码
数据结构·排序算法·泛型·c# 算法·鸡尾酒排序·原生 c# 开发·冒泡排序优化·嵌入式算法
Darling噜啦啦15 天前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
LDR00616 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
通信小呆呆16 天前
当算法有了“五感”:多模态数据融合如何向人体感官协同学习?
人工智能·学习·算法·机器学习·机器人
H__Rick16 天前
自动对焦学习-3
人工智能·学习·计算机视觉
Daisy Lee16 天前
量化学习-第1章-什么是量化金融
学习·金融·datawhale
小小工匠16 天前
Redis - 事务机制:能实现 ACID 属性吗
数据结构·redis·性能优化·并发·持久化