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

链表(求此程序编码)邮箱xiayula10@163.com

发布网友 发布时间:2022-11-11 15:03

我来回答

1个回答

热心网友 时间:2024-11-25 06:45

/*
http://zhidao.baidu.com/question/359535292.html?fr=uc_push&push=ql&oldq=1
1.在一个有序表中插入一个元素,使得该表仍然有序。
2.将一个链表中的元素进行拆分,将所有奇数放到一个链表中,将所有的偶数放到另一个链表中。
3.将两个链表合并成一个链表。
4.将一个链表中的所有元素逆序存储并显示。
*/
#define AUTHOR ZEERO_FN
typedef struct _node{
int num;
struct _node *next;
} Node, *pNode;

pNode CreateTestNode(int re, int len)
{
pNode head, cur, tail;
int i;
head = cur = tail = NULL;
for(i = 0; i < len; i++)
{
if(NULL == (cur = (pNode)malloc(sizeof(*cur))))
return head;
cur->num = i + re;
cur->next = NULL;
if(!head)
{
head = tail = cur;
}
else
{
tail->next = cur;
tail = tail->next;
}
}
return head;
}

int PrintAllNode(const pNode head) //显示链表元素数据
{
Node const * ph = head;
while(ph)
{
printf("%d ",ph->num);
ph = ph->next;
}
printf("\n");

}

pNode Insert(pNode ph, int n) //1.在一个有序表中插入一个元素,使得该表仍然有序。
{
pNode head = ph, tmp,cur;
if(NULL == (tmp = (pNode)malloc(sizeof(*cur))))
return ph;
tmp->num = n;
while(head && head->num < n)
{
cur = head;
head = head->next;
}
if(ph == head)
{
tmp->next = head;
return tmp;
}
tmp->next = cur->next;
cur->next = tmp;
return ph;
}

pNode Split(pNode h, pNode *hA, pNode *hB)//2.将一个链表中的元素进行拆分,将所有奇数放到一个链表中,将所有的偶数放到另一个链表中。
{
pNode headA, tailA, headB, tailB, tmphead;;
if(h == NULL) return NULL;
*hA = *hB = NULL;
tmphead = h;
headA = tailA = headB = tailB = NULL;
while(tmphead)
{
if(tmphead->num % 2)
{
if(!headA)
{
*hA = headA = &(*tmphead);
}
else
{
headA->next= &(*tmphead);
headA = headA->next;
}
}
else
{
if(!headB)
{
*hB = headB = &(*tmphead);
}
else
{
headB->next= &(*tmphead);
headB = headB->next;
}
}
tmphead = tmphead->next;
}
headA->next = headB->next = NULL;
return NULL;
}

pNode join(pNode headA, pNode headB) //3将两个链表合并成一个链表。
{
pNode head, tail;
if(!headA) return headB;
if(!headB) return headA;
head = tail = headA;
headA = headA->next;
while(headA)
{
tail->next = headA;
tail = tail->next;
headA = headA->next;
}
tail->next = headB;
tail = tail->next;
headB = headB->next;
while(headB)
{
tail->next = headB;
tail = tail->next;
headB = headB->next;
}
tail->next = NULL;
return head;
}

pNode reverse(pNode h) //4将一个链表中的所有元素逆序存储
{
pNode tmphead,tmptail, head = h;
tmphead = tmptail = NULL;
while(head->next)
{
if(!tmphead)
{
tmphead = tmptail = head;
head = head->next;
tmptail->next = NULL;
}
else
{
tmphead = head;
head = head->next;
tmphead->next = tmptail;
tmptail = tmphead;
}

}
head->next = tmphead;
return head;
}
int main(int argc, char *argv[])
{
pNode head, headA, headB;

head = CreateTestNode(5, 20);
printf("测试链表 \n");
PrintAllNode(head);
printf("头插 3 \n");
head = Insert(head, 3); //头插
PrintAllNode(head);
printf("尾插 30 \n");
head = Insert(head, 30); //尾插
PrintAllNode(head);
printf("中间插 15 \n");
head = Insert(head, 15); //中间插
PrintAllNode(head);
printf("拆分 \n");
head = Split(head, &headA, &headB); //拆分
PrintAllNode(headA);
PrintAllNode(headB);
printf("合并 \n");
head = join(headA, headB); //合并
PrintAllNode(head);
printf("翻转 \n");
head = reverse(head); //翻转
PrintAllNode(head);

system("PAUSE");
return 0;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
企业培训学到了什么 培训感悟简短 有关培训的感悟 通过培训学到什么 培训你学到了什么 领导问培训学到什么怎么回复 Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 三星堆的起源之谜可能让大家意外 Mu Dynamics是什么? 《三星堆之迷——彝族是夏代的统治者,古彝文是夏代的官方文字》 股票mu r muin什么意思 英雄无敌5东方部落里地狱族后期怎么打 冰狱家族排名多少 2019黑界十大家族家族 这两个字怎么读啊 上面一个狱下面一个鸟.上面一个族下面一个鸟 金铲铲加里奥魔典皮肤霓虹之夜可以用吗 猜四字成语:“护短”(抛弃了长) 我的世界最新版2.0.1更新了什么 封停游戏帐号属于破坏个人财产罪吗? 谁玩魔兽争霸3最好 叫什么名呀? 用什么种族呀? 人门称他叫什么名呀... 魔兽世界 欧服 6221885840046610213 是哪地方的邮政卡帐号? 经典五扣休闲POLO衫哪里有? 罗贯中的作品有哪些 罗贯中的作品有什么 你的家族究竟是做什么的? 《龙族》里的秘籍都有哪些? 百度空间里怎么弄鼠标啊? 七武士 击杀最多 牛顿为什么哭泣? 柯南里面哪些反物理常识会让牛顿哭晕在厕所? 有关牛顿的挫折事例。 传说当年落在牛顿头上的苹果被他怎么处理了? GTA5:牛顿看完要哭了!麦克从月球骑自行车到地球 each同义词 each与per都翻译成什么?区别在哪? 光伏合同30年有效吗 胶原蛋白有用么 口服胶原蛋白片到底有用吗? 平度烧烤那家好吃? 谁知道平度哪有吃自主火锅烧烤的地方 平度赵老大烧烤在什么位置? 平度公司不忙,我在烟台多待几天陪陪你吧,晚上下班给我打电话一起吃饭... 为什么《火影忍者》现在忍者们的头带上直接写“忍”字了,怎么个情况... 哥斯拉真人剧集公布演员阵容 ,哥斯拉的IP存在多久了? 中交陈重最新动态是否离开中交了? 蚁丛旅游中交所更新版本显示优化确认订单提示弹窗是什么意思,应该...