1. 程式人生 > >C語言順序表

C語言順序表

結構體宣告:

typedef struct Listable{//宣告結構體
	int * head;
	int length;
	int size;
}listable;

 順序表的建立:

//建立順序表函式
listable establash(){
	listable lt;		//建立結構體變數
	lt.head=(int *)malloc(Size*sizeof(int));//申請記憶體
	if(!lt.head){
		printf("建立失敗");
		exit(0);		//退出
	}
	lt.length=0;	//順序表內邊元素佔用的長度
	lt.size=Size;	//順序表的長度
	return lt;
}

 案例:

#include <stdio.h>
#include <stdlib.h>

#define Size 10

typedef struct Listable{//宣告結構體
	int * head;
	int length;
	int size;
}listable;

//建立順序表函式
listable establash(){
	listable lt;		//建立結構體變數
	lt.head=(int *)malloc(Size*sizeof(int));//申請記憶體
	if(!lt.head){
		printf("建立失敗");
		exit(0);		//退出
	}
	lt.length=0;	//順序表內邊元素佔用的長度
	lt.size=Size;	//順序表的長度
	return lt;
}

//初始化
void star(listable *ls){
	for(int j=0;j<5;j++){	//賦值5個數
		ls->head[j]=j+1;		
		ls->length++;
	}
}

//列印順序表的值
void print(listable *li){
	for(int i=0;i<li->length;i++){
		printf("%d ",li->head[i]);
	}
	printf("\n");
}

int main(){
	listable lis=establash();
	star(&lis);
	printf("順序表內容:");
	print(&lis);
	printf("總長度:%d  當前長度:%d",Size,lis.length);
	return 0;
}