问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据结构中的合并顺序表问题

发布网友 发布时间:2022-05-19 08:04

我来回答

1个回答

热心网友 时间:2023-10-09 04:22

#define ElementType char
#define MAX_LEN 1024#include<stdio.h>
#include<malloc.h>
typedef struct Node{
ElementType data ;
Node *next;

}*ListHead,Node;ListHead ListEmerge(ListHead lista,ListHead listb){
ListHead scan_a,scan_b,listc,scan_c;
scan_a = lista;
scan_b = listb;
scan_c = listc = new Node; while(lista&&listb){
if(scan_a->data < scan_b->data){
lista = lista->next;
scan_c->next = scan_a;
scan_a = lista;
}
else
{
listb = listb->next;
scan_c->next = scan_b;
scan_b = listb; }
scan_c = scan_c->next;
}
while(lista){scan_c->next = lista;lista = NULL;}
while(listb){scan_c->next = listb;listb = NULL;}
scan_c = listc;
listc = listc->next;
free(scan_c);
return listc;}ListHead ListFilter(ListHead list){

ListHead scan_all,scan_pre,res_list,scan_cur ; res_list=scan_cur = list;
while(scan_cur){//1
scan_pre = scan_cur;
scan_all = scan_cur->next;
while(scan_all){//2
if(scan_all->data == scan_cur->data){
scan_pre->next = scan_all->next;

free(scan_all);
scan_all = scan_pre->next;
// printf("equal.\n");
}

else{
scan_pre = scan_pre->next;
scan_all = scan_all->next;
// printf("Not equal.\n");
}

}//2
scan_cur= scan_cur->next;
}//while1

return res_list;
}ListHead ListCreate(){
int i = 0;
ListHead head,scan,pre_scan;
scan=head= (ListHead) malloc(sizeof(Node));
printf("Enter the letters to be filtered:(less than %d)\n",MAX_LEN);

for(ElementType in_char;i<MAX_LEN&&(in_char = getchar())&&(in_char != '\n')&&(in_char != '0');i++)
{

scan->data = in_char;
scan->next = (ListHead) malloc(sizeof(Node));
pre_scan = scan;
scan = scan->next;
}

pre_scan->next = NULL;
return head;
}void ListShow(ListHead list){

ListHead scan = list;
while(scan != NULL)
{
printf(" -> %c ",scan->data);
scan = scan->next;
}
printf("\n");
}
void main(){
ListHead lista = ListCreate();
ListHead listb = ListCreate();
//FilterList(list);
printf("Lista");
ListShow(lista);
printf("Listb ");
ListShow(listb);
ListHead listc = ListEmerge(lista,listb);
printf("Listc ");
ListShow(listc);

////////
listc = ListFilter(listc); printf("Listac AfterFilter");
ListShow(listc);
}这个应该符合你要求
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 ebay的A-SCAN是指什么? 医学A-scan什么意思 JAVA 实现不同的帐号在一台系统上只能登录一个web系统 Na放在CuSO4和H2O中,那个反应更活泼,为什么 na投入cuso4溶液中的方程式 Na与CuSO4反应会生成Cu(OH)2,为什么还会有CuO或Cu生成? 将Na投入CuSO4溶液中的现象 把Na投到CuSo4溶液中有何反应 Na与CuSO4溶液如何反应? Na与CuSO4反应现象及原因, NA与CUSO4溶液的反应方程式 Na和CuSO4反应的化学方程式 javascript求数组最大值 如何注销? 今天黄金一克多少钱 怎么办理每月买一克黄金 240一克黄金可能吗? SEM能测金箔的表面形貌吗 可以注销吗?怎么注销? 注销怎么弄 avscan自定义目录文件看不见了 SCAN 怎么读? X-scan是什么?有病毒不? arcscan不能用 求appscan下载地址 关于X-scan 探测 双目运算符的扩展 今天网易云为什么变成灰色了 社区公共卫生科科长一个月工资大概多少? 如何做好人社局社保科科长 日照市户籍科科长是什么级别 部队侦查科科长是干嘛的 瑞安市组织部部委人员一科科长有级别? 民政局长和街道民政科科长差多少级 藕家常做法,正宗财鱼焖藕怎么做 腊鸭焖藕最正宗的做法 黄焖藕的家常做法大全怎么做好吃视频 膨胀歌词 mp3膨胀了 谁知道这首歌的?