YTU.3174: 链表基本操作---指定结点删除
来源:互联网 发布:floyd算法的流程图 编辑:程序博客网 时间:2024/06/06 20:25
3174: 链表基本操作---指定结点删除
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 23 Solved: 20
[Submit][Status][Web Board]
Description
根据具有10个元素的整型数组构建链表,删除其中的指定结点3和6,并输出链表中所有元素的值。请完善如下程序:只需提交需要填写部分的代码。
#include <stdio.h>
#include <stdlib.h>
typedef struct NODE
{
int data; //数据域
struct NODE *next; //指针域,指向下一个结点
} Node;
int main()
{
Node *head, *p1, *p2; //head头指针,p一般结点指针
int a[] = {1,2,3,4,5,6,7,8,9,10};
int i;
head = (Node *)malloc(sizeof(Node)); //开辟头结点
p1 = (Node *)malloc(sizeof(Node));
p1->data = a[0];
head->next = p1;
for( i = 1 ; i < 10 ; i++) //对链表进行赋值,创建包含1-10的链表
{
p2 = (Node *)malloc(sizeof(Node));
p1->next = p2;
p2->data = a[i];
p2->next = NULL;
p1 = p2;
}
p1 = head->next;
p2 = p1->next;
printf("%d",p1->data);
while( p2 != NULL )
{
if( p2->data == 3 || p2->data == 6) //对于数据域是3或者是6的结点进行删除
{
p1->next = p2->next;
free(p2);
/*******在下面填写代码***********/
/*******在上面填写代码***********/
}
printf(" %d",p2->data);
p1 = p2;
p2 = p2->next;
}
return 0;
}
Input
无
Output
不存在3和6的链表序列
Sample Output
1 2 4 5 7 8 9 10
AC代码:
#include <stdio.h>#include <stdlib.h>typedef struct NODE{ int data; //数据域 struct NODE *next; //指针域,指向下一个结点} Node;int main(){ Node *head, *p1, *p2; //head头指针,p一般结点指针 int a[] = {1,2,3,4,5,6,7,8,9,10}; int i; head = (Node *)malloc(sizeof(Node)); //开辟头结点 p1 = (Node *)malloc(sizeof(Node)); p1->data = a[0]; head->next = p1; for( i = 1 ; i < 10 ; i++) //对链表进行赋值,创建包含1-10的链表 { p2 = (Node *)malloc(sizeof(Node)); p1->next = p2; p2->data = a[i]; p2->next = NULL; p1 = p2; } p1 = head->next; p2 = p1->next; printf("%d",p1->data); while( p2 != NULL ) { if( p2->data == 3 || p2->data == 6) //对于数据域是3或者是6的结点进行删除 { p1->next = p2->next; free(p2); /*******在下面填写代码***********/ p2=p1->next; /*******在上面填写代码***********/ } printf(" %d",p2->data); p1 = p2; p2 = p2->next; } return 0;}
水!!!
- YTU.3174: 链表基本操作---指定结点删除
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- 学习笔记——C语言实现单链表的基本操作:创建、输出、插入结点、删除结点、逆序链表
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- C语言实现单链表(带头结点)的基本操作(创建,头插法,尾插法,删除结点,打印链表)
- 带头结点的链表基本操作
- 在O(1)时间内删除链表指定结点
- 在O(1)时间删除指定链表结点
- 剑指offfer--删除链表的指定结点
- o(1)时间删除链表指定结点
- 算法-O(1)时间删除链表的指定结点
- 二叉排序树删除指定结点
- 链表的基本操作(创建,查找指定位置元素,删除指定元素,插入,倒置,去重,求集合的差,分别交换结点与交换结点值实现的冒泡排序,将两个有序链表合并成一个有序链表)c语言实现
- 单链表结点读取、插入、删除操作(基本操作)-C++
- 基本链表的创建,结点插入、删除
- 链表(二)——单向链表的基本操作(创建、删除、打印、结点个数统计)
- 程序员面试宝典_链表基本操作,建立,求长,删除和插入特定值的结点
- 删除链表结点
- maven 下载 安装
- hibernate详解(七)---映射继承关系
- 使用Topshelf创建Windows服务
- 3.selenium 处理下拉框 元素
- VS2015 附加进程不能调试程序
- YTU.3174: 链表基本操作---指定结点删除
- 新布局ConstrainLayout属性总结
- Oracle重做日志-OMF管理
- Android开发经验之intent传递大数据
- 简单linux命令
- java面试详解-总有你能碰得到的
- dialog弹框总结
- ==和equals的区别
- Linux下配置SSH建立信任