数据结构00

文章详细阐述了数据结构中的逻辑结构与存储结构,包括线性、树形和网状关系。重点讨论了顺序表和链表两种数据结构,提到了它们的特点、操作方法以及在实际应用如超市管理系统和学生管理系统中的示例。顺序表访问方便但插入删除不便,而链表则在插入和删除上更灵活。
摘要由CSDN通过智能技术生成
数据结构研究的是数据的逻辑结构、存储结构及其操作
数据:计算机处理的对象(数据)已不再单纯是数值,更多的是一组数据

备注:一组数据称之为数据元素

逻辑结构:

1对1 -----线性关系

1对多-----树形关系(1对2---二叉树)

多对多----网状关系 ----图

存储结构:

顺序存储---顺序表

链式存储---链表

索引存储

hash存储---hash表

操作:

创建、插入、显示、删除、修改、查找

顺序表

顺序表的特点

(1)顺序并且连续存储、访问方便

(2)大小固定

(3)表满不能存、表空不能取

优点:访问方便

缺点:插入、删除不方便都需要移动元素

定义数据元素的类型

typedef int data_type;

假设做一个超市管理系统                       假设做一个学生管理系统

typedef struct shop                             typedef struct student

{                                            {

char name[20];//商品的名称                      char name[20];//学生的姓名

int count;//商品的数量                           int id;//学号

float in_price;//商品的进价                       int class;//班级

float out_price;//商品的售价   float score;

}data_type;                                   }data_type;

定义一个顺序表的类型

#define N 10

typdef struct list

{

data_type arr[N];

int count;//有效数据的个数(0 == count不能取、N == count不能存)

}List;

创建顺序表

 

向顺序表中插入数据 

显示 

 

删除顺序表中的元素 

 

 销毁顺序表

 

  1. 链表

链表的特点

  1. 申请的空间可以不连续
  2. 访问不方便
  3. 插入、删除不需要移动元素

 相关概念

 

链表的分类:

有没有头结点:

带头结点的链表、不带头结点的链表

指针域是双向还是单向:

单向链表、双向链表

尾结点是否指向头结点:

循环链表、不循环链表

定义数据元素的类型

typedef int data_type;

定义链表中的结点的数据类型

typedef struct linkNode

{

data_type data;//数据域

struct linkNode *pNext;

}Link;

创建新结点

向链表中插入数据

头插法

 

尾插法 

 

显示 

根据位置删除链表中的数据

头删法

 尾删法

 中间删除

 

 销毁链表

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值