谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)
#include<stdio.h>
#include<stdlib.h>
#define N sizeof(link)
typedef struct stu
{
struct stu *next;
int date;
}link;
void print(link*head)/*打印链表数据*/
{
link *p;
p=head->next;
if(p)
do
{
printf("%d\t",p->date);
p=p->next;
}while(p);
printf("\n");
}
link *creat(void)/*创建链表*/
{
link *head,*p,*s;
head=(link*)malloc(N);
head->next=p=(link*)malloc(N);
printf("请输入数据输入‘0’结束创建链表:\n");
scanf("%d",&p->date);
while(p->date)
{
p->next=(link*)malloc(N);
s=p;
p=p->next;
printf("请输入数据输入‘0’结束创建链表:\n");
scanf("%d",&p->date);
}
s->next=NULL;
return(head);
}
link *del(link *head,int m)/*删除指定数据节点*/
{
link *p,*last,*s;
last=head;
p=head->next;
while(p)
{
if(p->date==m)
{
last->next=p->next;
s=p;
p=p->next;
free(s);
}
else {
last=last->next;
p=p->next;
}
}
return head;
}
link *insert(link *head,int m)/*在m数据结点后插入结点并输入数据*/
{
link *p,*pnew;
for(p=head->next;p;p=p->next)
if(p->date==m)
{
pnew=(link*)malloc(N);
printf("请输入插入的数据:\n");
scanf("%d",&pnew->date);
pnew->next=p->next;
p->next=pnew;
}
printf("成功插入结点数据!\n");
return(head);
}
int main()
{
link*head;
int n;
head=creat();
printf("打印未处理的数据:\n");
print(head);
printf("\n输入要删除的数据结点:\n");
scanf("%d",&n);
printf("打印删除后的链表数据:\n");
print(del(head,n));
printf("\n输入在哪个链表数据后插入结点:\n");
scanf("%d",&n);
printf("打印插入后的链表数据:\n");
print(insert(head,n));
return ;
}
测试数据:
请输入数据输入‘0’结束创建链表:
1
请输入数据输入‘0’结束创建链表:
2
请输入数据输入‘0’结束创建链表:
3
请输入数据输入‘0’结束创建链表:
4
请输入数据输入‘0’结束创建链表:
5
请输入数据输入‘0’结束创建链表:
6
请输入数据输入‘0’结束创建链表:
7
请输入数据输入‘0’结束创建链表:
8
请输入数据输入‘0’结束创建链表:
9
请输入数据输入‘0’结束创建链表:
10
请输入数据输入‘0’结束创建链表:
0
打印未处理的数据:
1 2 3 4 5 6 7 8 9 10 输入要删除的数据结点:
7
打印删除后的链表数据:
1 2 3 4 5 6 8 9 10 输入在哪个链表数据后插入结点:
6
打印插入后的链表数据:
请输入插入的数据:
666666
成功插入结点数据!
1 2 3 4 5 6 666666 8 9 10
Press any key to continue
谭浩强C语言第四版第九章课后习题7--9题(建立,输出,删除,插入链表处理)的更多相关文章
- 谭浩强第四版第九章课后习题12>>>建立一个链表,每个节点包括:学号、姓名、性别、年龄。输入一个年龄,若链表 中的结点所包含的年龄等于此年龄,则删除此结点。
#include<stdio.h> #include<stdlib.h> #define N sizeof(link) typedef struct lin { struct ...
- NEUQ1051: 谭浩强C语言(第三版)习题6.7
//C代码简直难看到家,求大神知道如何写出复用性好的,维护性强的代码... //格式错误了好几次,最后发现是are和数字之间多了个空格......本来一直以为是最后的换行多了,费劲搞掉了. #incl ...
- NEUQ1055谭浩强C语言(第三版)习题6.11
//迭代公式不是很理解,写出来算了.. #include <stdio.h> #include <math.h> int main() { double x0,x1; int ...
- NEUQ1038: 谭浩强C语言(第三版)习题4.8
之前没做对的一道题,今天集中清理一下. //------------------- 很水的题,主要是 %.2lf 不能四舍五入,需要仅保留两位小数,用了丑陋的强制类型转换... //--------- ...
- 读谭浩强C语言数据结构有感(1)
1.什么是数据结构? 数据结构,就是我们计算机内部的运算,编程语言的基础工作模式吧,个人总结的 = = !! 数据:说简单一点,就是计算机二进制机器码,然后通过一些复杂的操作,变为复杂的语言. 数据元 ...
- 谭浩强 c++程序设计第一章课后习题 第10题
#include <iostream> using namespace std; int main() { int a,b,c; cout<<"请输入三个整数类型的数 ...
- 谭浩强 c++程序设计第一章课后习题 第7题
#include <iostream> using namespace std; int main() { int a,b,c; int f(int x,int y,int z);//这是 ...
- java编程思想第四版第九章总结
1. 策略设计模式 参考这篇文章:http://blog.csdn.net/chenjie19891104/article/details/6396458 讲的很清楚,策略设计模式.并且举了一个例子, ...
- java编程思想第四版第九章习题
第三题 package net.mindview.interfaces; abstract class Base{ public Base(){ print(); } abstract void pr ...
随机推荐
- ZHS16GBK编码中汉字缺失
生产中使用ZHS16GBK编码的Oracle数据库,若出现字,则会出现乱码 原因是此字不存在在ZHS16GBK编码中 解决方法可以:此二字结构相同,但是后面的在ZHS16GBK编码中出现
- June 15th 2017 Week 24th Thursday
Whatever is worth doing is worth doing well. 任何值得做的,就把它做好. Whatever is worth doing is worth doing we ...
- 一点一点学写Makefile-1
相信很多Linux开发者 都得自己来写Makefile,刚开始学习学写这个的时候都会碰到很多困难,我之前没有自己独立完成过Makefile,都是在公司已有的模板上添加.现在突然有一个很大的想法就是从零 ...
- c++中的const用法(很详细)——转
http://www.cnblogs.com/ymy124/archive/2012/04/16/2451433.html const给人的第一印象就是定义常量. (1)const用于定义常量. 例如 ...
- Jmeter入门1 官网下载及安装
1 Jmeter运行需要java环境.首先需要安装JDK. 图标是这样的: 2 下载apache-jmeter包. jmeter官网:http://jmeter.apache.org/ 3 解压 ...
- Markdown黑色背景代码高亮
因为我默认的不是Markdown...这里分享给用Markdown的小伙伴吧. /* 使用了Monokai Sublime的黑色主题皮肤,但是还存在样式冲突,需要自己修改 这个样式只适合使用maked ...
- OSI七层模型详解(物理层、数据链路层、网络层、传输层.....应用层协议与硬件)
原文链接 https://blog.csdn.net/xw20084898/article/details/39438783
- http返回值含义
1xx:信息响应类,表示接收到请求并且继续处理2xx:处理成功响应类,表示动作被成功接收.理解和接受 3xx:重定向响应类,为了完成指定的动作,必须接受进一步处理4xx:客户端错误,客户请求包含语法错 ...
- Python的核心数据类型
Python的核心数据类型有:数字,字符串,列表,字典,元组,文件等. 数字 数字类型有:整形int,浮点型float,复数complex,布尔型bool. 整形 整型数是不带有小数部分的 ...
- python selenuim如何判断下拉框是否加载出来,超过时间不再等待
s_flag = True time_start = time.time() while s_flag: doc = etree.HTML(unicode.encode(driver.page_sou ...