删除单链表中的偶数元素
单链表基础 这篇博客介绍了如何实现带头结点的单链表数据结构,包括初始化、插入元素、求表长、查找节点、查找数值位置以及删除偶数节点等基础运算。通过输入不同数据,展示了操作的具体流程和输出结果。 阅读详情
我写的那个删除偶数原素的函数void DelOU_LinkList(LinkList &L);有错,但不会改,请各位指点.
#include<iostream>
#include<cstdlib>
#define ElemType int
typedef int Status;
typedef struct lnode
{
ElemType data;
struct lnode *next;
}LNode,*LinkList;
LinkList myList;
void CreateList_LinkList(LinkList &L,int n,char createBy);
void viewList(LinkList L);
void DelOU_LinkList(LinkList &L);
int main()
{
int createNum;
char createBy;
cout << "----链表示例----" << endl;
cout << "请输入你要建立的链表的长度:_\b";
cin >> createNum;
do
{
cout << endl << "请输入你建立表的方式(随机->0输入->其他):_\b";
cin >> createBy;
cout << endl;
if(createBy!='0'&&createBy!='1') cout << "你的输入有误,请重试";
}while(createBy!='0'&&createBy!='1');
CreateList_LinkList(myList,10,createBy);
cout << "遍历表:" << endl;
viewList(myList);
system("pause");
//cout << "del ou:" << endl;
//DelOU_LinkList(myList);
viewList(myList);
system("PAUSE");
return 0;
}
void CreateList_LinkList(LinkList &L,int n,char createBy)
{
LinkList p;
//先过来一个头节点
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
//开始建立链表
for(int i=0;i<n;i++)
{
p = (LinkList)malloc(sizeof(LNode));
if(createBy=='0')
{
p->data = rand()%101;
}
else
{
cout << "请输入你第" << i+1 << "个数:_\b" ;
cin >> p->data;
cout << endl;
}
p->next = L->next;
L->next = p;
}
return;
}
void viewList(LinkList L)
{
int i=0;
LinkList p;
p = L->next;
cout << endl << "\t\t==========遍历开始==========" << endl;
while(p)
{
if(i%2==0) cout << endl;
cout << "\tmyList.data[" << i << "]= " << p->data;
i++;
p = p->next;
}
if(i==0) cout << "\t表还是空表" << endl;
cout << endl << "\t\t==========遍历结束==========" << endl;
return;
}
void DelOU_LinkList(LinkList &L)
{
LinkList p,q,t;
p=L;
q =p;
while(q)
{
t =p;
q = p->next->next;
if(p->next->data%2==0)
{
if(q)
{
t->next = q;
free(p->next);
}
else
{
t->next = NULL;
free(p->next);
}
}
p = q;
}
return;
}
void Sort_LinkList()
...全文
相关推荐
数据结构实验二.doc
最后,实验中的挑战是将单链表分解为两个新的单链表A和B,A链表包含原链表中序号为奇数的元素,B链表包含序号为偶数的元素,同时保持原有的相对顺序。
实验11-2-4 删除单链表偶数节点 (20 分)
该博客介绍了如何实现删除单链表中偶数值节点的功能。通过提供的代码示例,展示了如何创建单链表,然后使用`deleteeven`函数删除链表中所有偶数节点,最终输出只包含奇数节点的链表。
PTA: 删除单链表偶数节点(C语言)
本文介绍如何使用C语言实现两个关键的链表操作:从标准输入创建单链表,并从该链表中删除所有偶数值的节点。通过具体的函数实现和示例代码,展示了链表的基本操作和数据结构的处理技巧。
函数题-删除单链表偶数结点
本文介绍了如何实现两个函数,一个用于从标准输入读取正整数并构建单链表,直到遇到-1为止。另一个函数接收链表头,删除所有偶数值的节点,并返回新的链表头。链表节点包含一个整数值和指向下一个节点的指针。
关于单链表的最小值的操作
如果`minNode`是偶数,删除其后继节点。以上就是针对单链表中最小值节点操作的相关知识点,包括最小值查找、数值交换以及根据奇偶性的条件操作。


