删除单链表中的偶数元素

nyj_vbnet nyj_vbnet 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

我写的那个删除偶数原素的函数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()

...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部
nyj_vbnet
C++ 语言 65,214 成员 250,514 内容