*/
* 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++中如何对单向链表操作的更多相关文章

  1. Alan Cox:单向链表中prev指针的妙用

    之前发过一篇二级指针操作单向链表的例子,显示了C语言指针的灵活性,这次再探讨一个指针操作链表的例子,而且是一种完全不同的用法. 这个例子是linux-1.2.13网络协议栈里的,关于链表遍历& ...

  2. C#学习单向链表和接口 IList<T>

    C#学习单向链表和接口 IList<T> 作者:乌龙哈里 时间:2015-11-04 平台:Window7 64bit,Visual Studio Community 2015 参考: M ...

  3. c++(循环单向链表)

    前面的博客中,我们曾经有一篇专门讲到单向链表的内容.那么今天讨论的链表和上次讨论的链表有什么不同呢?重点就在这个"循环"上面.有了循环,意味着我们可以从任何一个链表节点开始工作,可 ...

  4. 输入一个单向链表,输出该链表中倒数第K个结点

    输入一个单向链表,输出该链表中倒数第K个结点,具体实现如下: #include <iostream> using namespace std; struct LinkNode { publ ...

  5. C/C++中对链表操作的理解&&实例分析

    链表概述 链表是一种常见的重要的数据结构.它是动态地进行存储分配的一种结构.它可以根据需要开辟内存单元.链表有一个“头指针”变量,以head表示,它存放一个地址.该地址指向一个元素.链表中每一个元素称 ...

  6. python中的单向链表实现

    引子 数据结构指的是是数据的组织的方式.从单个数据到一维结构(线性表),二维结构(树),三维结构(图),都是组织数据的不同方式. 为什么需要链表? 顺序表的构建需要预先知道数据大小来申请连续的存储空间 ...

  7. java对单向单向链表的操作

    概述:众所周知,数据对于数据的存储时连续的,也就是说在计算机的内存中是一个整体的.连续的.不间断的ADT数据结构.伴随的问题也会随之出现,这样其实对于内存的动态分配是不灵活的.而链表具备这个优点.因此 ...

  8. 【编程题目】输入一个单向链表,输出该链表中倒数第 k 个结点

    第 13 题(链表):题目:输入一个单向链表,输出该链表中倒数第 k 个结点.链表的倒数第 0 个结点为链表的尾指针.链表结点定义如下: struct ListNode {int m_nKey;Lis ...

  9. 输出单向链表中倒数第k个结点

    描述 输入一个单向链表,输出该链表中倒数第k个结点,链表的倒数第0个结点为链表的尾指针. 链表结点定义如下: struct ListNode { int       m_nKey; ListNode* ...

随机推荐

  1. [思路笔记]WEB安全之漏洞挖掘

    记录自己在实际渗透测试以及漏洞挖掘中会用到的思路和方法.不断完善,尽量以系统的方式展现程序化式的漏洞挖掘.由于各种原因,不便公开. 通用策略 1.信息搜集 : 数据挖掘.业务挖掘 数据: 邮箱.手机号 ...

  2. html 基础笔记

    html 1,一套规则,浏览器认识的规则 2,开发者: 学习Html规则 开发后台程序: -写Html文件(充当模板的作用) -数据库获取数据,然后替换到html文件的指定位置(web框架) 3,本地 ...

  3. iOS之input file调用相册控制器消失跳转到登陆页

    最近在做一个app要用到H5,其中有一个需求是要点击H5的的控件弹出系统相册,通过在H5的input file 中定义<input type="file" class=&qu ...

  4. 项目中关于RPC 和rocketMQ使用场景的感受

    在花生待的这半年,切身体会了系统之间交互场景的接口技术实现方式,个人总结.仅供参考: 1.关于rpc接口,一般情况下 都是同步的.A系统的流程调用B系统.等着B返回,根据返回结果继续进行A接下来的流程 ...

  5. 编译原理_P1002

    . 词法分析 1.1 词法记号及属性 词法记号.模式.词法单元 记号名 词法单元列举    模式的非形式描述 if if 字符i,f for for     字符f,o,r relation < ...

  6. ModelSerializer补充及ListSerializer

    整体单改 路由层.模型层.序列化层不需要做修改,只需要处理视图层:views.py """ 1) 单整体改,说明前台要提供修改的数据,那么数据就需要校验,校验的数据应该在 ...

  7. 37)PHP,获取数据库数据并在html中显示(晋级4)

    我的php文件和html文件的位置关系: 然后我的主php文件是b.php,我的那个配置文件是BBB.php,我的html文件是login.html 然后我的b.php代码展示: <?php c ...

  8. hdu 2586 How far away ?(LCA模板)(倍增法)

    在dfs的过程中维护三个数组: deep[i],表示i点在树中的深度: grand[x][i],表示x的第2^i个祖先的节点编号: dis[x][i],表示x到它2^i祖 #include<io ...

  9. iOS MJRefresh的使用 (列表上拉加载更多)

    pod 'MJRefresh' import MJRefresh 加载更多 let footView = MJRefreshAutoNormalFooter(refreshingBlock:{ //去 ...

  10. Outlook邮件的右键菜单中添加自定义按钮

    customUI代码如下: <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> ...