#include<stdio.h>
#include<stdlib.h>
typedef struct LNode
{
int data;
struct LNode *next;
}LNode,*LinkList;
LinkList List_HeadInsert(LinkList &L);//头插法建立单链表
LinkList List_TailInsert(LinkList &L);//尾插法建立单链表
LNode *GetElem(LinkList L,int n);//按序号查找结点值
LNode *LocateElem(LinkList L,int e);//按值查找结点并返回(这里是返回结点)
int LocateElem1(LinkList L,int e);//按值查找结点并返回(这里是返回结点位置)
bool InsertElem(LinkList &L,int n,int e);//插入结点(按位置)
bool DeleteElem1(LinkList &L,int n);//删除结点(按位置)
bool DeleteElem2(LinkList &L,int e);//删除结点(按元素值)
int GetLength(LinkList L);//求表长
void OutputList(LinkList L);//正序输出单链表
int OutputLNode(LNode *p);//输出结点值
LinkList MergeLinkList_Dcrease(LinkList A,LinkList B,LinkList &C);
LinkList MergeLinkList_Increase(LinkList A,LinkList B,LinkList &C);
int main()
{
int e=3;
LinkList A,B,C,D;
printf("请输入单链表A元素(输入9999结束接受):");
//List_HeadInsert(L);
List_TailInsert(A);
printf("请输入单链表B元素(输入9999结束接受):");
List_TailInsert(B);
OutputList(A);
OutputList(B);
//OutputList(MergeLinkList_Dcrease(A,B,C));
OutputList(MergeLinkList_Increase(A,B,D));
OutputList(A);
//OutputList(B);
/*
两个合并的操作没办法都运行,因为在函数中B的头结点被释放了。
而运行一个合并操作后,下一个合并操作B就找不到了。
*/
/*
printf("%d ",GetLength(L));
printf("%d ",LocateElem1(L,e));
printf("%d ",OutputLNode(GetElem(L,2)));
printf("%d ",
1.单链表
最新推荐文章于 2024-07-24 10:18:54 发布