给定两个已排序的表有两只灯泡l1和l22,使用动态链表的基本操作编写计算L1 ∩ L2的过程

DS02线性表习题参考解答_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
DS02线性表习题参考解答
上传于||暂无简介
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩3页未读,继续阅读
你可能喜欢编写一个完整的程序,实现单链表的建立、插入、删除、输出等基本操作。1)建立一个带头结点的单链表。(2)计算单链表的长度,然后输出单链表。(3)查找值为x的直接前驱结点q。(4_百度作业帮
编写一个完整的程序,实现单链表的建立、插入、删除、输出等基本操作。1)建立一个带头结点的单链表。(2)计算单链表的长度,然后输出单链表。(3)查找值为x的直接前驱结点q。(4)删除值为x的结点。(5)把单向链表中元素逆置(不允许申请新的结点空间)。(6)利用(1)建立的链表,实现将其分解成两个链表,其中一个全部为奇数,另一个全部为偶数(尽量利用已知的存储空间)。(7)在主函数中设计一个简单的菜单,分别测试上述算法
typedef int E#define OVERFLOW
-2#define OK 1#define ERROR -1#include "stdio.h"#include "stdlib.h"typedef struct LNode {
E struct LNode *}*//构造链表void Create_Linklist(linklist &L){ p=(linklist)malloc(sizeof(LNode)); if(!p)
exit(OVERFLOW); L=p; L->next =NULL;}//节点插入void Insert_Linklist(linklist &L){ int n,i; printf("请输入插入节点的个数n: "); scanf("%d",&n); getchar(); for(i=n;i>0;i--) {
p=(linklist )malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->
L->next =p; }}//遍历输出并输出长度 status Visit_linklist(linklist &L){ int i=1; p=L-> if(L->next==NULL)
return ERROR; while(p->next !=NULL) {
printf("%d ",p->data );
printf("%d\n",p->data ); printf("长度为:%d\n",i); return OK;} //查找值为x的直接前驱结点q并输出 void Search_linklist(linklist &L) {
int x,k=0;
linklist p=L,q;
printf("输入x: ");
scanf("%d",&x);
getchar();
if(L->next ==NULL)
printf("该表为空 !\n");
while(p->next!=NULL)
if(p->next ->data ==x)
printf("%d ",q->data );
if(p->next &&p->data ==x)
printf("%d ",p->data );
printf("未找到值为%d的结点\n",&x);
printf("\n"); } //删除节点 status Delete_linklist(linklist &L) {
linklist p,q; int k=0,x; printf("请输入删除节点的值x: "); scanf("%d",&x); getchar(); if(L->next ==NULL)
return ERROR;
p=L; q=L-> while(q!=NULL)
if(q->data ==x)
p->next =q->
q=p-> } if(k==0)
printf("表中没有值为%d的结点!\n",&x); return OK; }
//链表逆置
void ListInverse_linkliast(linklist &L) {
linklist k,p,q;
while (p->next !=NULL)
while (L->next !=p)
L->next = q->
k->next =q;
} } //链表奇偶分解 void
Break_linklist (linklist &La,linklist &Lb) {
linklist p,q;
q=Lb; while(p->next!=NULL) {
if(p->data %2==0)
q->next =p;
if(p->data %2==0)
q->next =p;
//主菜单 void main() {
linklist L1,L2;
(1) 建立带头节点的单链表\n");
(2) 插入节点\n");
(3) 计算链表长度并输出单链表\n");
(4) 查找值为x的直接前驱结点并输出其值\n");
(5) 删除节点值为x的结点\n");
(6) 逆置单链表结点\n");
(7) 单链表奇偶分解\n");
请输入选择:");
while(scanf("%d",&choice))
getchar();
printf("\n\n");
switch(choice)
Create_Linklist(L1);
Insert_Linklist(L1);
Visit_linklist(L1);
Search_linklist(L1);
Delete_linklist(L1);
ListInverse_linkliast(L1);
Create_Linklist(L2);
Break_linklist (L1,L2);
输入有误!");
扫描下载二维码数据结构经典算法试题_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
数据结构经典算法试题
上传于||文档简介
&&数​据​结​构​经​典​算​法​试​题
阅读已结束,如果下载本文需要使用
想免费下载本文?
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
你可能喜欢 上传我的文档
 下载
 收藏
从大学毕业后一直做酒店管理,在管理方面认识还不错!
 下载此文档
正在努力加载中...
数据结构复习题(附答案)
下载积分:3000
内容提示:数据结构复习题(附答案)
文档格式:DOC|
浏览次数:17|
上传日期: 00:38:17|
文档星级:
该用户还上传了这些文档
数据结构复习题(附答案)
官方公共微信

我要回帖

更多关于 有两只灯泡l1和l2 的文章

 

随机推荐