• 链表的顺序存储


    链表的顺序存储无非就是在一个结构体数组里面集成了许多函数的操作,使之算法变得更加简单。

    #include<stdio.h>
    #include<windows.h>
    #define maxsize 100
    typedef int datatype;
    typedef struct {
    	datatype a[maxsize];
    	int size;
    }sequence_list;
     
    void init(sequence_list* slt) {
    	slt->size=0;
    }//值空表。
    
    void append(sequence_list* slt,datatype x) {
    	if(slt->size==maxsize) {
    		printf("顺序表是满的!");
    		exit(1); 
    	}
    	slt->a[slt->size]=x;
    	slt->size=slt->size+1;
    }//顺序表后部进行插入操作。
    
    void display(sequence_list slt) {
    	int i;
    	if(!slt.size)
    		printf("
    顺序表是空的!");
    	else
    		for(i=0;i<slt.size;i++)
    			printf("%5d",slt.a[i]);
    }//打印顺序表的各个节点值。
    
    int empty(sequence_list slt) {
    	return (slt.size==0?1:0);
    }//判断顺序表是否为空。
    
    int find(sequence_list slt,datatype x) {
    	int i=0;
    	while(i<slt.size&&slt.a[i]!=x) i++;
    	return (i<slt.size?i:-1);
    }//查找顺序表中值为x的节点位置。
    
    datatype get(sequence_list slt,int i) {
    	if(i<0||i>=slt.size) {
    		printf("
    指定位置的节点不存在!");
    		exit(1);
    	}
    	else
    		return slt.a[i];
    }//取得顺序表中第i个节点的值。
    
    void insert(sequence_list *slt,datatype x,int position) {
    	int i;
    	if(slt->size==maxsize) {
    		printf("
    顺序表满了,没办法插入!");
    		exit(1);
    	}
    	if(position<0||position>slt->size) {
    		printf("
    指定的位置不存在!");
    		exit(1);
    	}
    //	for(i=slt->size;i>position;i--) {
    //		slt->a[position]=x;
    //		slt->size++;
    //	}
    	for(i=slt->size;i>position;i--) {
    		slt->a[i]=slt->a[i-1];
    	}
    	slt->size++;
    	slt->a[position]=x;
    }//在顺序表的position位置插入值为x的节点。
    
    void dele(sequence_list *slt,int position) {
    	int i;
    	if(slt->size==0) {
    		printf("
    顺序表是空的!");
    		exit(1); 
    	}
    	if(position<0||position>=slt->size) {
    		printf("
    指定的删除位置不存在!");
    		exit(1);
    	}
    	for(i=position;i<slt->size-1;i++)
    		slt->a[i]=slt->a[i+1];
    	slt->size--;
    }//删除表中第position位置的节点。
    
    
    int main()
    {
    	return 0;
    }
    
  • 相关阅读:
    重构构建的平凡之路
    andriod CheckBox
    andriod 用户名和密码
    andriod ==和equals
    android布局--Android fill_parent、wrap_content和match_parent的区别
    Android 五大布局
    一个帖子学会Android开发四大组件
    Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'.
    andriod VideoView
    arcgis andriod 长按获得当前信息
  • 原文地址:https://www.cnblogs.com/lifehappy/p/12601199.html
Copyright © 2020-2023  润新知