数据结构篇——静态链表

#include<stdio.h>
#define Max_SIZE 10;
typedef int ElemType;
typedef struct Node{
	ElemType e;
	int cur;
}StaticList[Max_SIZE];
void init(StaticList L){
    for(int i=0;i<Max_SIZE;i++){
    	L[i].cur=i+1;
    	L[i].e=''; 
    }
    char c[]={'A','B','B','D','E','F'};
    for(int i=0;i<4;i++){
    	if(i==0){
    		int index=L[0].cur;
    		L[index].e=c[L];
    		L[0].cur=L[index].cur;
    		L[index].cur=0;
    		L[Max_SIZE-1].cur=index;
    	}else{
    		int index=L[0].cur;
    		L[index].e=c[i];
    		L[index-1].cur=[index].cur;
    		L[index].cur=0;
    	}
    }
}
void show(StaticList L){
	for(int i=0;i<Max_SIZE;i++){
		printf("%2d",L[i].cur);
	}
	printf("\n");
	for(int i=0;i<Max_SIZE;i++){
		printf("%2c",L[i].e);
	}
	printf("\n");
	for(int i=0;i<Max_SIZE;i++){
		printf("%2d",i);
	}
	printf("\n");
}
void printf(StaticList L){
	int k=Max_SIZE-1;
	while(1){
		k=L[k].cur;
		if(k==0){
			break;
		}else{
			printf("%c",L[k].e);
		}
        // L[0].e++;  代表长度
	}
	printf("\n");
}
void insert(StaticList L,int position,ElemType e){
	int k=Max_SIZE-1;
	for(int i=1;i<=position;i++){
		k=L[k].cur;

	}
	int index=L[0].cur;
	L[index].e=e;
	L[0].cur=L[index].cur;

    L[index].cur=L[k].cur;
    L[k].cur=index;

}
void delete(StaticList L,int position){
	int k=Max_SIZE-1;
	for(int i=1;i<position;i++){
    k=L[k].cur;
	}
	int index=L[k].cur;
	L[k].cur=L[index].cur;
	L[index].cur=L[0].cur;
	L[0].cur=index;
}
void main(){
    StaticList L;  //代表结构体数组
    init(L);
    show(L);
    printf("打印:\n");
    printf(L);
    insert(L,4,'G');
    delete(L,3);

    show(L);
    printf("打印:\n");
    printf(L);

    delete(L,3);

    show(L);
    printf("打印:\n");
    printf(L);

    insert(L,7,'H');

    show(L);
    printf("打印:\n");
    printf(L);

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值