数据结构3_160805无头单向不循环
单链表优点:动态结构,整个空间可以多个链表共用
不需要预先分配空间
插入删除方便
缺点:指针占用额外的空间,不能随机查找
==============list.h========================
#ifndef LIST_H__
#define LIST_H__
#define SIZE 32
typedef struct _datatype
{
int id;
char name[SIZE];
int math;
int chinese;
}datatype;
typedef struct node_st{
datatype data;
struct node_st *next;
}list;
int list_destroy(list *);
void list_display(list *);
int list_insert(list **, datatype *);
int list_delete(list **);
datatype *list_find(list *,int );
#endif
===========list.c=======================
#include"list.h"
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
void list_display(list *me)
{
list *cur;
for (cur = me; cur!=NULL; cur = cur->next)
{
printf("%d %s %d %d\n",cur->data.id, cur->data.name, cur->data.math, cur->data.chinese);
}
return ;
}
int list_destroy(list *me)
{
list * save = NULL;
while(me)
{
save = me->next;
free(me);
me = save;
}
return 0;
}
int list_insert(list **me, datatype *data)
{
list *new;
new = malloc(sizeof(*new));
if (NULL == new)
return -1;
new->data = *data;
new->next = *me;
*me = new;
return 0;
}
int list_delete(list **me)
{
if(NULL == *me)
return -1;
list *save;
save = *me;
*me = (*me)->next;
free(save);
return 0;
}
datatype *list_find (list *me, int id)
{
list *save;
for (save = me;save!=NULL;save = save->next)
{
if( save->data.id ==id)
{
return &save->data;
}
}
return NULL;
}
===============main.c==========================
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include"list.h"
int main()
{
list *list = NULL;
datatype tmp;
int i;
for (i = 0; i <7 ; i++)
{
tmp.id = i;
snprintf(tmp.name, SIZE, "stu%d",i);
tmp.math = rand()%100;
tmp.chinese = rand()%100;
list_insert(&list, &tmp);
}
list_display(list);
list_delete(&list);
printf("=============\n");
list_display(list);
datatype *prt;
prt = list_find(list,3);
if(prt==NULL)
printf("can't find\n");
else
printf("find it\n");
list_destroy(list);
return 0;
}
数据结构3_160805无头单向不循环相关推荐
- C语言实现链表【一】(无头单向非循环链表)
无头单向非循环链表 看到这个标题,是不是有小伙伴已经懵了呢? 只学过链表,怎么还有个无头和有头呢?怎么还有个循环和非循环呢?怎么还有个单向和双向呢?一连串的疑问... 其实这些都是链表的表示形式,只不 ...
- python创建链表实例_python数据结构链表之单向链表(实例讲解)
python数据结构链表之单向链表(实例讲解) 单向链表 单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域.这个链接指向链表中的下一个节点,而最后 ...
- 数据结构之链表---单向链表
逻辑结构: 集合结构:所有数字可以看做一个整体 线性结构:一条有顺序的线把所有的数字串起来 树状结构:所有数字都是从一个数字开始向一个方向扩展出来的 网状结构:任何两个数字之间都有直接的联系,不同数字 ...
- 2021 - 9 -下旬 数据结构- 线性表 -双端循环队列 - java实现
//循环双端队列:Circle Double Ended Queue //本质是对动态数组的优化 //队头队尾都可以添加或删除元素 //相比于普通循环队列需要注意的点是在队头插入元素时的对front前 ...
- 大话数据结构 队列10:数组循环队列
基础介绍 队列 先进先出,出列在队头,进列在队尾 数组可以做成循环队列. 循环队列的一个重要问题:判断队列是空是满? 空队列的判断比较简单:尾游标等于头游标 满队列的判断比较复杂:如果也是用尾游标等于 ...
- 数据结构带头结点单向不循环链表(C语言版)
main.c,负责测试 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> #include<stdlib.h> #inc ...
- 数据结构 - 链表(单向环形链表)(约瑟夫问题)
问题如下(与分析) 构建思路 输入一个数,数到这个数的小孩出圈,出圈顺序的思路 代码实现 根据图解,来一步一步实现 //根据用户输入,计算小孩出圈顺序/**** @param startNo 表示从第 ...
- 数据结构链表之单向链表:Python3 实现单向链表——1
Python3 实现单向链表 链表定义与简介 定义:链表与顺序表(Python中列表)性质相反,链表是物理单元上非顺序的.非连续的,在逻辑顺序上其数据元素是通过指针实现的,组成链表的每一个元素也可以叫 ...
- 单链表插入元素 注释 c语言,数据结构之无头单链表的相关练习题——C语言实现(详细注释)...
本文中所用到的相关链表操作实现均在我上篇博客中:https://blog..net/haoziai905/article/details/87099287 1.删除无头单链表的非尾结点 这道题的重点就 ...
最新文章
- JavaWeb第三讲 JSP内置对象、基本动作指令、常见编译指令及四大作用域
- java ajax上传图片插件_java图片上传并预览,前台用jQuery插件AjaxFileUpload,后台用FileUtils.copyFile....
- 7-69 超市促销 (6 分)
- matlab 自带pca函数,matlab实现主成分分析 princomp函数 PCA中有这个函数
- 华为会议电脑版_大家在用什么会议产品呢? 对企业的视频会议是如何规划的?...
- 【eclipse】Multiple annotations found at this line:——解决方法
- 路由器linux校园网,还在为无法突破校园网的限制而烦恼?动动手,借助路由器完成锐捷认证...
- Log4j.properties 属性详解以及 LOG4J日志级别详解
- Kafka运维大全来了!优化、监控、故障处理……
- CDR 制作“决战高考”海报
- scheme 语言概述
- 织梦CMS建站入门学习(一)
- Unity3D-设置地形
- Python ctypes 调用API函数模拟键盘鼠标事件
- Bug heroes虫虫英雄······超详细翻译+基本攻略
- BPDU保护与边缘端口、RLDP防环
- 题目描述请参照本章例题,编写一个程序,输出以下信息:************************** Very Good**********************
- VSTO PPT图表对象的操作(1)
- intel服务器最新主板芯片组,拒绝阴霾 主板芯片组如何承载时代经典
- javscript将时间转化为时辰输出
热门文章
- 精致又小巧的3款黑科技软件,一旦使用,难以割舍
- The Buffer Bomb
- 什么是linux网络驱动程序,什么是Linux网卡驱动程序?
- docker images 命令详解
- 显微镜下的白细胞 捉到一群正在撒欢de小可爱,哇哇~
- EASY EAI Nano人工智能开发套件免费试用啦!
- GO语言开山篇(二):诞生小故事
- c# 新中新二代身份证阅读,包含头像,支持华视
- 链脉吴雪:工业互联网热潮下,人工智能名片有何机会?
- webpack : 无法加载文件 C:\Users\zgl\AppData\Roaming\npm\webpack.ps1,因为在此系统上禁止运行脚本 。