线性表的建立插入删除查找(浙大数据结构)
2018-01-26 23:38
411 查看
#include <stdio.h> #include <stdlib.h> #define MAXSIZE 5 #define ERROR -1 //typedef enum {false, true} bool; typedef int ElementType; typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last; /* 保存线性表中最后一个元素的位置 */ }; List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); int main() { List L; ElementType X; Position P; int N; L = MakeEmpty(); scanf("%d", &N); while ( N-- ) { scanf("%d", &X); if ( Insert(L, X, 0)==false ) printf(" Insertion Error: %d is not in.\n", X); } scanf("%d", &N); while ( N-- ) { scanf("%d", &X); P = Find(L, X); if ( P == ERROR ) printf("Finding Error: %d is not in.\n", X); else printf("%d is at position %d.\n", X, P); } scanf("%d", &N); while ( N-- ) { scanf("%d", &P); if ( Delete(L, P)==false ) printf(" Deletion Error.\n"); if ( Insert(L, 0, P)==false ) printf(" Insertion Error: 0 is not in.\n"); } return 0; } /* 你的代码将被嵌在这里 */ List MakeEmpty() { List L; L= (List)malloc(sizeof(struct LNode)); L->Last=-1; return L; } Position Find( List L, ElementType X ) { for(int i=0;i<=L->Last;i++) { if(L->Data[i]==X) return i; } return -1; } bool Insert(List L, ElementType X, Position P ) { if(L->Last==MAXSIZE-1) { printf("FULL"); return false; } if(P<0||P>L->Last+1) { printf("ILLEGAL POSITION"); return false; } int i; for( i=L->Last+1;i>P;i--) { L->Data[i]=L->Data[i-1]; } L->Data[i]=X; L->Last++; return true; } bool Delete( List L, Position P ) { if(P>L->Last||P<0) { printf("POSITION %d EMPTY",P); return false; } for(int i=P+1;i<=L->Last;i++) { L->Data[i-1]=L->Data[i]; } L->Last--; return true; }
相关文章推荐
- c语言实现线性表的建立,初始化,插入,删除,查找,遍历以及时间复杂度分析
- 数据结构实践---单链表的初始化,建立,插入,查找,删除。
- 线性表建立、插入、删除、查找应用
- 线性表的操作(完成表的建立,插入,删除,排序,销毁,查找 )
- 链表的插入删除查找(浙大数据结构)
- 编程实现顺序存储结构和链式存储结构线性表的建立、查找、插入、删除等基本操作
- (1)顺序表的操作 ① 输入一组整型元素序列,建立线性表的顺序存储结构。 ② 实现该线性表的遍历。 ③ 在该顺序表中查找某一元素,查找成功显示查找元素,否则显示查找失败。 ④ 在该顺序表中删除或插入指
- 二叉树的建立,删除,查找,插入,输出(数据结构)
- 大二 第一次数据结构作业 (数组的排序,删除,查找,插入,合并)(线性表)
- 数据结构 二叉排序树的创建,查找,插入,删除
- 线性表的链式存储格式基本操作:创建链表、插入、删除、查找、求表长、打印链表
- 单链表的初始化,建立,插入,查找,删除。
- 顺序队列的初始化,建立,插入,查找,删除。
- 二叉排序树的操作(建立、插入、删除和查找)
- 【高质量代码实践】【链表】链表的建立,查找,删除,插入和输出
- 建立完整的单向动态链表(包括初始化、创建、插入、删除、查找、销毁、输出)
- 单链表的初始化,建立,插入,查找,删除。
- 数据结构学习-二叉搜索树-查找、插入、删除
- 单链表的初始化,建立,插入,查找,删除
- 线性表的顺序存储格式基本操作:初始化、插入、删除、查找、打印