数据结构-单链表节点的删除
2017-10-10 15:10
489 查看
数据结构-单链表节点的删除
时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte总提交:208 测试通过:105
描述
单链表节点的删除操作是线性表数据结构对象操作的重要内容,请您写一个程序完成对一个单链表某一个节点的删除操作。
请用如下函数完成上述功能,线性表List的定义如下(强烈建议使用下面的定义和函数结构)
typedef struct LNode
{
Elemtype data;
struct LNode *next;
}LNode,*LinkList;
int ListDelete_L(LinkList &L,int i,Elemtype &e)
输入
输入有多组测试数据,每组测试数据包括1行,用空格隔开的1个数字和多个字母,数字表示要删除节点在线性表中的位置,紧接着几个字母表示要删除节点线性表的名称,后面的字母表示线性表的当前的内容。
输出
如果删除失败,输出ERROR,否则输出OK,并输出删除节点后线性表的内容。
样例输入
7 L1 = (DEGIKNQTV)
4 L2 = (CFG)
样例输出
ListDelete_L(L1, 7, e) = OK, L1 = (DEGIKNTV), e = 'Q'
ListDelete_L(L2, 4, e) = ERROR, L2 = (CFG)
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef char Elemtype; char a[10]; char b[10]; typedef struct LNode { Elemtype data; struct LNode *next; } LNode,*LinkList; int create(LinkList &l) { char c; int x=0,f=0,f1=0; l = new LNode; LinkList k = new LNode; l->next=k->next=NULL; while(cin>>c&&c!='(') {} while(cin>>c&&c!=')') { LinkList p = new LNode; p->data=c; p->next=NULL; k->next=p; k=p; x=0; if(f==0) { l->next=k; f=1; } } LinkList p = new LNode; p=l->next; } int ListInsert_L(LinkList &l,int i) { int j=1; LinkList p=new LNode; p=l; while(p&&j<i) { j++; p=p->next; } if(j<i||!p) { return 0; } LinkList q=new LNode; q->data=a[0]; q->next=p->next; p->next=q; return 1; } int input(LinkList l) { LinkList p = new LNode; p=l->next; while(p) { cout<<p->data; p=p->next; } } int main() { int n; while(scanf("%d",&n)!=EOF) { LinkList la; scanf("%s",a); scanf("%s",b); create(la); int k=ListInsert_L(la,n); if(k==1) { printf("ListInsert_L(%s, %d, '%c') = OK, %s = (",b,n,a[0],b); input(la); printf(")\n"); } else if(k==0) { printf("ListInsert_L(%s, %d, '%c') = ERROR, %s = (",b,n,a[0],b); input(la); printf(")\n"); } } return 0; }
相关文章推荐
- 数据结构(第二天)单链表的基本操作,创建单链表,头插法,尾插法,删除节点,查询节点
- 程序员面试宝典之数据结构基础----②单链表删除节点(读后)
- 数据结构——单链表的创建、删除、遍历以及节点的插入、删除等操作
- 删去单链表中第i个节点的操作。删除单链表中数据域为x的前驱元素。数据结构。
- 数据结构——链表之单链表重复元素的删除
- 结构之美:删除单链表指定位置的数据
- 数据结构—链表-单链表应用-删除元素最大的节点
- C语言之数据结构的顺序单链表创建,插入和删除操作
- 数据结构(三)——单链表的插入与删除
- 【数据结构】单链表(二)单链表的逆置,合并与删除
- 单链表的节点内数据值的删除问题(携程网笔试题)
- 实战数据结构(2)_两个单链表间的删除操作
- 数据结构之单链表的删除
- 数据结构——10 双向链表插入和删除节点
- 数据结构:程序加图示分析单链表的插入和删除操作
- 单链表的节点内数据值的删除问题(携程网笔试题)
- 数据结构——2 单链表插入和删除节点
- 数据结构 单链表删除结点 例子
- 数据结构之 线性表---单链表的应用(重复元素删除)
- 【数据结构】单链表的倒序、删除相同结点、按值排序等简单操作用java实现