数据结构上机练习(2) 单链表
来源:互联网 发布:python 作图 编辑:程序博客网 时间:2024/06/05 16:15
#include "stdafx.h"#include "stdlib.h"#include "malloc.h"#define TRUE 1#define FALSE 0#define OK 1#define ERROR 0#define INFEASIBLE -1#define OVERFLOW -2typedef int Status;typedef char ElemType;typedef struct LNode{ ElemType data; struct LNode *next;}LNode,*LinkList;void CreateList_L(LinkList &L,int n){ LinkList p; int i; L = (LinkList)malloc(sizeof(LNode)); L->next = NULL; for (i = n; i > 0;--i){ p = (LinkList)malloc(sizeof(LNode)); scanf_s("%d", &p->data); p->next = L->next; L->next = p; }}Status InsertList_L(LinkList L, int i, ElemType e){ LinkList p, s; int j = 0; p = L; while(p && j<i-1){ p = p->next; ++j; } if (!p || j>i - 1) return ERROR; s = (LinkList)malloc(sizeof(LNode)); s->data = e; s->next = p->next; p->next = s; return OK;}Status DeleteList_L(LinkList &L, int i, ElemType &e){ LinkList p, q; int j = 0; p = L; while(p->next && j<i-1){ p = p->next; ++j; } if (!(p->next) || j>i - 1) return ERROR; q = p->next; p->next = q->next; e = q->data; free(q); return OK;}Status GetElem_L(LinkList L, int i, ElemType &e){ LinkList p; int j = 1; p = L->next; while(p || j<i){ p = p->next; ++j; } if (!p || j>i) return ERROR; e = p->data; return OK;}void display(LinkList L) { LinkList p; p = L->next; while (p){ printf("%d", p->data); p = p->next; } printf("\n");}void MergeList_L(LinkList &La, LinkList &Lb, LinkList &Lc) { LinkList pa, pb, pc; pa = La->next; pb = Lb->next; Lc = pc = La; while(pa && pb) if(pa->data <= pb->data){ pc->next = pa; pc = pa; pa = pa->next; }else{ pc->next = pb; pc = pb; pb = pb->next; } pc->next = pa ? pa : pb; free(Lb);}int main() { LinkList L; CreateList_L(L, 3); display(L); InsertList_L(L, 2, 100); display(L); ElemType e; DeleteList_L(L, 2, e); display(L); printf("被删除的值=%d\n", e); GetElem_L(L, 3, e); printf("获取的值=%d\n", e); LinkList Lb,Lc; CreateList_L(Lb, 2); display(Lb); printf("合并后\n"); MergeList_L(L, Lb, Lc); display(Lc); getchar(); getchar(); return 0;}
0 0
- 数据结构上机练习(2) 单链表
- 算法与数据结构上机练习2
- 上机练习2(转)
- 第一章上机练习2
- 06上机练习2
- 07上机练习2
- C#上机练习2
- 10上机练习2
- 09上机练习2
- C#上机练习2
- sql上机练习2
- 11上机练习2
- 上机练习1-2
- 数据结构上机2
- 数据结构(java)练习2
- 十二章上机练习2
- 14章上机练习2
- 十四章上机练习2
- 12.PackageManager&&Popwindow必须设置背景
- Linux 自检和 SystemTap
- Java中的语句错误总结(不定期更新)
- .NET 十五岁,谈谈我眼中的.NET
- 【软件测试】功能测试
- 数据结构上机练习(2) 单链表
- PAT A1101. Quick Sort (25)
- Struts2中的路径问题
- Git 在团队中的最佳实践--如何正确使用Git Flow
- Git 实战教程(1)
- linux下shell
- JSON 获取属性值的方法
- linux下调试监控类工具
- C语言中extern的用法