zoukankan      html  css  js  c++  java
  • C语言顺序表完整实现

    #include <stdio.h>
    #include <stdlib.h>
    #define ElementType int
    const int MAXSIZE = 100;
    typedef struct{
    	ElementType Data[MAXSIZE];
    	int Last;
    }List;//list在前面和后面效果是一样的 
    
    List *MakeEmpty();
    ElementType FindKth(int K, List *PtrL);
    int Find(ElementType X,List *PtrL);
    void Insert(ElementType X, int i, List *PtrL);
    void Delete(int i, List *PtrL);
    int Length(List *PtrL);
    void LPrint(List *PtrL){
    	for(int i = 0; i<PtrL->Last;i++)
    		printf("%d
    ",PtrL->Data[i]);
    }
    int main(){
    	List L,*PtrL;//访问下标为i的元素 L.Data[i]或Ptrl->Data[i] 
    				//线性表的长度:L.Last+1或Ptrl->Last+1 
    				
    	PtrL = MakeEmpty();
    	for(int i = 0; i< 10;i++){
    		Insert(i,i,PtrL);
    	}
    	Insert(15,5,PtrL);
    	LPrint(PtrL);
    	Delete(5,PtrL);
    	LPrint(PtrL);
    	return 0;
    }
    //初始化,建立空的顺序表 
    List *MakeEmpty(){
    	List *PtrL;
    	PtrL = (List *)malloc(sizeof(List));
    	PtrL->Last=0;
    	return PtrL;
    }
    ElementType FindKth(int K, List L){//查找第K个元素
    	return L.Data[K-1];
    }
    int Find(ElementType X,List L){
    	List *PtrL = &L;
    	int i = 0;
    	for(i =0;i<=PtrL->Last;i++)
    		if(PtrL->Data[PtrL->Last]==X)
    			break;
    	if(i>PtrL->Last)
    		return -1;
    	else
    		return i;
    } 
    void Insert(ElementType X, int i, List *PtrL){//按第i个位置处理 ,L.Data[i-1]上插入 ;第一个元素是L.last[L.last+1] 
    	if(i<1||i>PtrL->Last+2){
    		printf("插入位置不合理
    ");
    		return;
    	}
    	
    	for (int j = PtrL->Last;j>=i-1;j--)
    		PtrL->Data[j+1]=PtrL->Data[j];
    	PtrL->Data[i-1]=X;
    	PtrL->Last++;
    	return; 
    }
    void Delete(int i, List *PtrL){//按第i个位置处理 ,删除L.Data[i-1];最后一个元素为L.Data[L.last] 
    	if(i<1||i>PtrL->Last){
    		printf("删除位置不合理
    ");
    		return;
    	}
    	int j;
    	for(j=i;j<PtrL->Last;j++)
    		PtrL->Data[j-1]=PtrL->Data[j];
    	PtrL->Last--;
    } 
    int Length(List *PtrL){
    	return PtrL->Last+1;
    } 
    

      

  • 相关阅读:
    js动态给对象添加事件
    JavaScript中提供获取HTML元素位置的属性:
    javascript:是什么意思
    Vector与ArrayList区别
    Java核心类库——集合的迭代(遍历) Iterator接口
    实例1(文字的放大缩小)
    基本控件的使用
    关于Android那些事
    初识Android
    JavaScript(Two)
  • 原文地址:https://www.cnblogs.com/zangkuo/p/6139795.html
Copyright © 2011-2022 走看看