版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单链表的建立(头插法)写一算法用头插法建立无头结点的单链表,结果返回单链表的头指针typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;LinkList CreateListF(void)char ch;LinkList head;ListNode *s;head=NULL;ch=getchar();while(ch!=n)s=(ListNode*)malloc(sizeof(ListNode);s-data=ch;s-next=h
2、ead;head=s;ch=getchar();return(head);单链表的打印写一算法打印不带头结点的单链表head中每个结点的值typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;void PrintList(LinkList head)ListNode *p;for(p=head;p;p=p-next) printf(%c,p-data);printf(n);单链表的建立(尾插法)写一算法用尾插法建立无头结点的单链表,
3、结果返回单链表的头指针typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;LinkList CreateListR(void)char ch;LinkList head;ListNode *s,*r;head=NULL;r=NULL;while (ch=getchar()!=n)s=(ListNode *)malloc(sizeof(ListNode);s-data=ch;if (head=NULL) head=s;else r-
4、next=s;r=s;if (r!=NULL) r-next=NULL;return(head);单链表的建立(尾插法)写一算法用尾插法建立带头结点的单链表,结果返回单链表的头指针typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;LinkList CreateListR1(void)char ch;LinkList head=(ListNode *)malloc(sizeof(ListNode);ListNode *s,*r;r
5、=head;while (ch=getchar()!=n)s=(ListNode *)malloc(sizeof(ListNode);s-data=ch;r-next=s;r=s;r-next=NULL;return(head);单链表的打印写一算法打印带头结点的单链表head中每个结点的值typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;voidPrintList(LinkList head)ListNode *p;for(p
6、=head-next;p;p=p-next) printf(%c,p-data);printf(n);单链表的查找写一算法在带头结点的单链表head中查找第i个结点typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;LinkList GetNode(LinkList head,int i)int j;ListNode *p;p=head;j=0;while (p-next & jnext;j+;if (i=j) return(p)
7、;else return(NULL);单链表的查找写一算法在带头结点的单链表head中查找其值为key的结点typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;LinkList LocateNode(LinkList head,DataType key)ListNode *p=head-next;while (p&p-data!=key) p=p-next;return(p);单链表的插入写一算法将值为x的新结点插入到带头结点的单
8、链表head的第i个结点的位置上typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;void InsertList(LinkList head,DataType x,int i)ListNode *p,*s;p=GetNode(head,i-1);/寻找第i-1个结点if(p=NULL)printf(插入位置非法n);exit(0);s=(ListNode *)malloc(sizeof(ListNode);s-data=x;s-
9、next=p-next;p-next=s;2单链表的删除写一算法删除带头结点的单链表中的第i个结点typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;void DeleteList(LinkList head,int i)ListNode *p,*r;p=GetNode(head,i-1);/寻找第i-1个结点if(p=NULL|p-next=NULL)printf(删除位置非法n);exit(0);r=p-next;p-next
10、=r-next;free(r);2单链表的逆置试用单链表作为存储结构,实现线性表(a0,a1,an-1)就地逆置的操作,所谓“就地”指辅助空间应为O(1)typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;void InverseList(LinkList *head)ListNode *p,*t,*h;h=(*head)-next;p=h-next;h=(*head)-next;h-next=NULL;while(p!=NULL
11、)t=p-next;p-next=h;h=p;p=t;(*head)-next=h;2单链表的长度在带头结点的单链表上实现线性表的ListLength(L)运算typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;int ListLength(LinkList L)int i=0;ListNode *p;for(p=L-next;p;p=p-next) i+;return(i);2单链表的长度在不带头结点的单链表上实现线性表的Lis
12、tLength(L)运算typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;int ListLength(LinkList L)int i=0;ListNode *p;for(p=L;p;p=p-next) i+;return(i);2有序单链表的插入设单链表L是一个递减有序表,试写一算法将x插入其中后仍保持L的有序性(从头结点开始搜寻适当的插入位置,然后插入)typedef char DataType;typedef struc
13、t nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;void InsertSortList(LinkList *L, DataType x)LinkNode *p,*s;p=*L;if (p=NULL | x=p-data)s=(ListNode *)malloc(sizeof(ListNode);s-data=x;s-next=p;*L=s;elsewhile (p-next!=NULL & xnext-data)p=p-next;s=(ListNode *)malloc(sizeof(ListN
14、ode);s-data=x;s-next=p-next;p-next=s;2有序单链表的插入设单链表L是一个递减有序表,试写一算法将x插入其中后仍保持L的有序性(先把x插入链表头,然后通过交换移动到正确的位置)typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *LinkList;void InsertSortList(LinkList *L, DataType x)LinkNode *p,*s;DataType t;s=(ListNode *)ma
15、lloc(sizeof(ListNode);s-data=x;s-next=*L;*L=s;p=*L;while (p-next!=NULL & p-datap-next-data)t=p-data;p-data=p-next-data;p-next-data=t;p=p-next;2单链表的合并已知L1和L2分别指向两个单链表的头结点,且已知其长度分别为m和n。试写一算法将这两个链表连接在一起typedef char DataType;typedef struct nodeDataType data;struct node *next;ListNode;typedef ListNode *L
16、inkList;void MergeList(LinkList *L1, LinkList *L2, Linklist *L3)LinkNode *r,*p,*q,*s;*L3=(LinkList)malloc(sizeof(Lnode);r=*L3; p=*L1; q=*L2;while (p | q) if (p)s=(LinkList)malloc(sizeof(Lnode); s-data=p-data;r-next=s;r=s;p=p-next;if (q)s=(LinkList)malloc(sizeof(Lnode);s-data=q-data;r-next=s;r=s;q=q-next;r-next=NULL;*L3=(*L3)-next;2有序单链表的合并设A和B是两个单链表,其表中元素递增有序。试写一算法将A和B归并成一个按元素值递增有序的单链表Ctypedef char DataType;typedef struct nodeDataType data;struct node *next;ListNo
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 就新员工入职培训安排的商洽函9篇范本
- 2024-2025学年园林绿化作业人员试题附参考答案详解【夺分金卷】
- 2024-2025学年宁夏建设职业技术学院单招《数学》考前冲刺试卷及答案详解【易错题】
- 2024-2025学年度法律硕士检测卷附参考答案详解(模拟题)
- 2024-2025学年度江苏农林职业技术学院单招数学预测复习附答案详解(培优B卷)
- 电商直播营销策划与执行全流程指南
- 2024-2025学年度执业兽医考前冲刺练习试题及答案详解【夺冠】
- 2024-2025学年度三支一扶能力检测试卷(突破训练)附答案详解
- 2024-2025学年度天津财经大学珠江学院《形势与政策》期末考试通关题库(A卷)附答案详解
- 2024-2025学年度医学检验(士)自我提分评估【轻巧夺冠】附答案详解
- 2026年江西电力职业技术学院单招职业技能考试题库带答案详解
- 2026年常州机电职业技术学院单招职业倾向性考试题库带答案详解(完整版)
- 眉山天府新区2026年上半年公开招聘专职网格管理员(77人)考试参考试题及答案解析
- 统编版(新教材)道德与法治二年级下册第12课见贤要思齐
- GB/T 26953-2025焊缝无损检测渗透检测验收等级
- GB/T 10810.1-2025眼镜镜片第1部分:单焦和多焦
- 2022年高考物理广东卷真题及答案
- 管理学基础(第二版) 章节习题及答案
- 安全通道防护棚搭设施工方案
- 电工安全教育试卷及答案
- 汽车供应商产品包培训
评论
0/150
提交评论