C++中如何对单向链表操作
*/
* Copyright (c) 2016,烟台大学计算机与控制工程学院
* All rights reserved.
* 文件名:text.cpp
* 作者:常轩
* 微信公众号:Worldhello
* 完成日期:2016年6月25日
* 版本号:V1.0
* 问题描述:对单向链表的增加,删除,插入
* 程序输入:无
* 程序输出:见运行结果
*/ #include "stdio.h"
#include "stdlib.h"
#include "string.h" struct STUDENT{ char name[32];
struct STUDENT *next;
};
void addStudent(STUDENT *stu);
void delStudent(char *name);
void saveStuToFile();
STUDENT *gStu=NULL;
int main()
{ int i;
for(i=0;i<100;i++)
{
STUDENT *stu;
stu = (STUDENT *)malloc(sizeof(STUDENT));
memset(stu->name,0,sizeof(stu->name));
sprintf(stu->name,"%s%d","zhangsan",i+1);
addStudent(stu);
}
saveStuToFile();
STUDENT *p;
p = gStu;
while(p)
{
printf("%s\n",p->name);
p= p->next;
} for(i=20;i<30;i++)
{
char name[32];
sprintf(name,"%s%d","zhangsan",i+1);
delStudent(name);
} p = gStu;
while(p)
{
printf("%s\n",p->name);
p= p->next;
} } void addStudent(STUDENT *stu)
{ STUDENT *p;
if(gStu==NULL)
{
gStu =stu;
stu->next=NULL;
}
else
{
p = gStu;
while(p)
{
if(p->next==NULL)
{
p->next =stu;
stu->next =NULL; }
p= p->next; } }
}
void delStudent(char *name)
{
STUDENT *p,*pre;
if (gStu==NULL)
{
return;
}
p =pre=gStu;
while(p)
{ if (!strcmp(p->name,name))
{
if(p==gStu)
{
gStu = gStu->next;
free(p);
p=NULL;
}
else
{
pre->next =p->next;
free(p);
p=NULL; }
}
else
{
pre =p;
p= p->next;
}
}
} void saveStuToFile()
{
FILE *fp; int filelen; fp = fopen("yyy.txt","w"); STUDENT *p;
p = gStu;
while(p)
{
fwrite(p->name,32,1,fp);
p= p->next; } fclose(fp);
}
C++中如何对单向链表操作的更多相关文章
- Alan Cox:单向链表中prev指针的妙用
之前发过一篇二级指针操作单向链表的例子,显示了C语言指针的灵活性,这次再探讨一个指针操作链表的例子,而且是一种完全不同的用法. 这个例子是linux-1.2.13网络协议栈里的,关于链表遍历& ...
- C#学习单向链表和接口 IList<T>
C#学习单向链表和接口 IList<T> 作者:乌龙哈里 时间:2015-11-04 平台:Window7 64bit,Visual Studio Community 2015 参考: M ...
- c++(循环单向链表)
前面的博客中,我们曾经有一篇专门讲到单向链表的内容.那么今天讨论的链表和上次讨论的链表有什么不同呢?重点就在这个"循环"上面.有了循环,意味着我们可以从任何一个链表节点开始工作,可 ...
- 输入一个单向链表,输出该链表中倒数第K个结点
输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...
- C/C++中对链表操作的理解&&实例分析
链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称 ...
- python中的单向链表实现
引子 数据结构指的是是数据的组织的方式.从单个数据到一维结构(线性表),二维结构(树),三维结构(图),都是组织数据的不同方式. 为什么需要链表? 顺序表的构建需要预先知道数据大小来申请连续的存储空间 ...
- java对单向单向链表的操作
概述:众所周知,数据对于数据的存储时连续的,也就是说在计算机的内存中是一个整体的.连续的.不间断的ADT数据结构.伴随的问题也会随之出现,这样其实对于内存的动态分配是不灵活的.而链表具备这个优点.因此 ...
- 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点
第 13 题(链表):题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针.链表结点定义如下: struct ListNode {int m_nKey;Lis ...
- 输出单向链表中倒数第k个结点
描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int m_nKey; ListNode* ...
随机推荐
- vue动态绑定class,tab栏
- saltstack的salt-api介绍
一.salt-api安装 yum install salt-api pyOpenSSL -y #pyOpenSSL 生成自签证书时使用 二.生成自签名证书(ssl使用) [root@master ce ...
- 前端Js复习-前后台的搭建-结合Bootstrap和JQuery搭建vue项目
流式布局思想 """ 页面的尺寸改变动态改变页面布局,或是通过父集标签控制多个子标签,这种布局思想就称之为 - 流式布局思想 1) 将标签宽高设置成 百分比,就可以随屏幕 ...
- Nginx配置使用
1.黑色标注的得自己写入到nginx.conf文件中 upstream serverlb { server 127.0.0.1:9999; server 127.0.0.1:8888; } serve ...
- D. Array Splitting(后缀数组)
You are given an array
- day29-struct模块解决黏包问题
#struct模块可以把一个数据类型,例如数字int,转化成固定长度(4个字节)的bytes.int转为4个bytes. #在大量传输数据之前先告诉接收端即将接收数据的大小,方可解决黏包问题: #利用 ...
- Excel-DNA项目只用1个文件实现Ribbon CustomUI和CustomTaskpane定制【C#版】
Excel-DNA项目中的自定义功能区和自定义任务窗格需要用到各种命名空间.添加所需文件,才能实现.后来我发现可以把所有代码都写在Class1.cs这个默认文件中. 大家可以在Visual Studi ...
- Pulsar、ZooKeeper、BookKeeper 作用简述
Pulsar:采取了存储计算分离的技术ZooKeeper 集群的作用和在 Kafka 中是一样的,都是被用来存储元数据.BookKeeper 集群则被用来存储消息数据.BookKeeper 有点儿类似 ...
- Xming+SecureCRT的安装与使用
博主本人平和谦逊,热爱学习,读者阅读过程中发现错误的地方,请帮忙指出,感激不尽 Xming下载地址:https://xming.en.softonic.com/ 安装完后打开文件位置: 一.Xming ...
- SVN 常用资源
常用命令 将文档checkout到本地目录 svn checkout path(path是服务器上的目录) svn checkout svn://192.168.1.1/pro/domain svn ...