zoukankan      html  css  js  c++  java
  • 链表的顺序存储

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

    #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;
    }
    
  • 相关阅读:
    STP-5-STP配置及分析
    PostgreSQL-10-数据运算与函数
    PostgreSQL-9-别名与动态表复制
    PostgreSQL-8-数据合并
    PostgreSQL-7-数据连接
    PostgreSQL-6-数据分组
    STP-4-每VLAN生成树和Trunk上的STP
    VLAN-6-VLAN Trunk协议(VTP)
    STP-3-收敛到新的STP拓扑
    STP-2-三个选择
  • 原文地址:https://www.cnblogs.com/lifehappy/p/12601199.html
Copyright © 2011-2022 走看看