通讯录详细实现

一、数据结构介绍

二、顺序表

三、通讯录的实现

数据结构介绍

数据结构是由‘数据’和‘结构’组成。

数据:一些包含特定信息的图片、文字、视频等。比如教务管理系统里保存的用户信息(姓名、性别、年龄、学历)、购物平台中的衣服、裤子、首饰、鞋子等文字。

结构:将一些包含数据的变量组合在一起,形成的特定结构。

数据结构:它是计算机存储、组织数据的方式,是指一些有关联的数据的集合,而且各数据之间通过特定的方式连结所形成的结构(小编对数据结构不是特别明白,这是在别人的基础上通过自己的理解拷贝别人的)

数据结构的特点:1.数据的空间大小可以自由改变 2.存储的数据可以包含任意类型 3.存储的数据能够方便查找

顺序表

1.线性表:它是一些相同特性的数据元素的有序排列方式。线性表是在实际应用中非常广泛的数据结构,例如:顺序表、链表、栈、字符串......

2.线性表逻辑:它的逻辑是线性结构,各个数据是相连的,但储存的位置不一定相连。

3.顺序表与数组的差别:顺序表的底层结构是数组,对数组的封装,实现了增查改删等功能。就比如下面的通讯录。

#include"Sequence.h"//这里是用来测试功能是否可以正常使用
int main()
{
    SQL s1;
    DataInit(&s1);//初始化
    AddFront(&s1, 5);//头插
    ShowData(&s1);//打印
    AddBack(&s1, 6);//尾插
    ShowData(&s1);//打印
    AddAnywhere(&s1, 2);//任意位置添加数据
    ShowData(&s1);//打印
    int i = FindData(&s1, 2);//查找
    if (i)
    {
        printf("它的下标是%d\n", i);
    }
    DeleteAnywhere(&s1, 2);//任意位置删除
    ShowData(&s1);//打印


    DestroyData(&s1);//销毁数据
    return 0;
}

这里是一些头文件的包含,大家在实现某项目时,会涉及很多的方法,将这些方法申明用一个头文件包含,到时候在有主函数main的文件中只要包含头文件就可以使用函数了。

#pragma once
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
//#define TYPE_MEMBER int //这里定义储存的数据类型,用于其他类型时,便于修改
typedef int TYPE_MEMBER;
typedef struct SequenceList
{
    TYPE_MEMBER* data;//用指针指向动态内存,便于增加可用数据空间
    int size;//有效数据大小
    int capacity;//可用空间大小
}SQL;


//数据初始化
void DataInit(SQL* data);
//数据销毁
void DestroyData(SQL* data);
//扩容
void DataExpand(SQL* data);
//在数据最前面添加数据
void AddFront(SQL* data, TYPE_MEMBER n);
//在数据后面添加数据
void AddBack(SQL* data, TYPE_MEMBER n);
//在空间内任意点添加数据
void AddAnywhere(SQL* data, TYPE_MEMBER n);
//在有效数据点内任意位置删除数据
void DeleteAnywhere(SQL* data, TYPE_MEMBER n);
//打印数据
void ShowData(SQL* data);
//查找数据
int FindData(SQL* data, TYPE_MEMBER n);

这里便是定义函数的源文件了,将这些定义写在一个源文件或者多个源文件中可以很方便查找我们要使用的函数原型

<
评论 24
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值