当前位置:   article > 正文

线性表的顺序存储实现———C语言_线性拟合算法 c程序 确定x存储顺序

线性拟合算法 c程序 确定x存储顺序

一、线性表的定义

二、线性表的抽象类型描述

线性表的顺序存储实现:

  1. typedef struct LNode* List;
  2. struct LNode {
  3. ElementType Data[MAXSIZE];
  4. int Last;
  5. };
  6. struct LNode L;
  7. List PtrL;
  8. //访问下标为i的元素:L.Data[i] or PtrL->Data[i];
  9. //线性表的长度:L.Last+1 or Ptrl->Last+1;

 三、线性表的基本操作

List MakeEmpty():初始化一个空的线性表L
ElementType FindKth(int K,List L):根据位序k,返回相应元素;
int Find(ElementType X,List L):在线性表L中查找X第一次出现的位置;
void Insert(ElementType X,int i,List L):在位序i前插入一个新元素X;
void Delete(int i,List L ):删除指定位序i的元素;
int Length(List L):返回线性表L的长度n;

1.初始化

  1. List MakeEmpty() 
  2. {
  3.     List PtrL;
  4.     PtrL = (List)malloc(sizeof(struct LNode));
  5.     PtrL->Last = -1;//Last 代表最后一个元素,如果Last=0则表示表里有一个元素存放在第一个位置;
  6.     return PtrL;
  7. }

2.查找

  1. int Find(ElementType X, List PtrL)
  2. {
  3.     int i;
  4.     while (i <= PtrL->Last && PtrL->Data[i] != X) {
  5.         i++;
  6.     }
  7.     if (i > PtrL->Last) {
  8.         return -1;
  9.     }
  10.     else {
  11.         return i;
  12.     }
  13. }

3.插入

  1. void Insert(ElementType X, int i, List L) 
  2. {
  3.     int j;
  4.     if (PtrL->Last == MAXSIZE - 1) {//表空间已满,不能插入
  5.         printf("表满");
  6.         return;
  7.     }
  8.     if (i<1 || i>PtrL->Last + 2) {//检查插入位置的合法性
  9.         ptintf("位置不合法");
  10.         return;
  11.     }
  12.     for (j = PtrL->Last; j >= i - 1; j--) {
  13.         PtrL->Data[j + 1] = PtrL->Data[j];//将ai--an倒序向后移动
  14.     }
  15.     PtrL->Data[i - 1] = X;//新元素插入
  16.     PtrL->Last++;//Last仍指向最后元素
  17.     return;
  18. }

4.删除

  1. void Delete(int i, List L) 
  2. {
  3.     int j;
  4.     if (i<1 || i>PtrL->Last + 1) {
  5.         printf("不存在第%d个元素",i );//检查删除位置的合法性
  6.         return;
  7.     }
  8.     for (j = i; j <= PtrL->Last; j++) {
  9.         PtrL->Data[j - 1] = PtrL->Data[j];//将ai--an正序向前移动
  10.     }
  11.     PtrL->Last--;
  12.     return;
  13. }    



 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/426973?site
推荐阅读
相关标签
  

闽ICP备14008679号