資料結構---線性表的順序儲存結構
阿新 • • 發佈:2018-11-08
#include <stdio.h> #define TRUE 1 #define FALSE 0 #define MAXSIZE 19 typedef struct { int data[MAXSIZE]; int length; }linklist; linklist link_list; int linkInsert(int i, int data) { int k; if(link_list.length == MAXSIZE) { return FALSE; } if(i < 1 || i > link_list.length + 1) { return FALSE; } if(i <= link_list.length) { for(k = link_list.length - 1; k >= i - 1; k--) { link_list.data[k+1] = link_list.data[k]; } } link_list.data[i-1] = data; link_list.length++; return TRUE; } int linkDelete(int i) { int k; if(link_list.length == 0) { return FALSE; } if(i < 1 || i > link_list.length) { return FALSE; } if(i < link_list.length) { for(k = i - 1; k < link_list.length - 1; k++) { link_list.data[k] = link_list.data[k+1]; } } link_list.length--; return TRUE; } int linkPrintf() { int i; for(i = 0; i < link_list.length; i++) { printf("data[%d] = %d num = %d\n", i, link_list.data[i], link_list.length); } return TRUE; } int main(int argc, char* argv[]) { int m, n, k; while(1) { printf("please input i and data\n"); scanf("%d%d", &m, &n); linkInsert( m, n); linkPrintf(); printf("is delete data?y/n\n"); scanf("%d", &k); if(k) { linkDelete(k); linkPrintf(); } } return 0; }
(未完待編輯)