1. 顺序表的遍历函数代码
/**判断顺序表是否为空* */int is_list_empty(sqlist *list)
{return list->len == 0 ? 1 : 0; }/**顺序表遍历** */void output(sqlist *list)
{if(NULL==list||1==is_list_empty(list)){printf("list is NULL!\n");return;}for(int i=0; i<list->len; i++){printf("%d\t", list->arr[i]);}putchar(10);}
2. 完整代码
#include <string.h>
#include <stdlib.h>
#include <stdio.h>#define MAXSIZE 20
typedef int data_type;typedef struct SQLIST
{//数据元素data_type arr[MAXSIZE];int len;}sqlist;sqlist *create();
int append(sqlist *list, data_type element);
int is_list_full(sqlist *list);
int is_list_empty(sqlist *list);
void output(sqlist *list);int main(int argc, const char *argv[])
{data_type element;int n;puts("> ---create a sqlist---\n");sqlist *list=create();if(NULL==list){printf("\tfailed to create sqlist!\n");return -1;}printf("\ta sqlist has been created!\n");putchar(10);puts("> ---append elements to list---\n");printf("\thow many element do you want to append?(max:%d):", MAXSIZE);scanf("%d", &n);for(int i=0; i<n; i++){printf("\tplease input No.%d element:", i+1);scanf("%d", &element);int ret=append(list, element);if(0==ret){printf("\tlist: len=%d / max=%d!\n", list->len, MAXSIZE);}else{printf("\tfailed to append element!\n");break;}putchar(10);}puts("> ---output list by traversing---\n");output(list);putchar(10);return 0;
}/**申请成功返回堆区内存首地址*失败返回NULL* */sqlist *create()
{sqlist* list=(sqlist*)malloc(sizeof(sqlist));if(NULL==list){return NULL;}//顺序表长度清零list->len=0; //顺序表数据元素清零memset(list->arr, 0, sizeof(list->arr));return list;
}/**满了返回1*不满返回0* */int is_list_full(sqlist *list)
{return list->len==MAXSIZE ? 1 : 0;
}/**注意要判断顺序表是否已满*成功返回0*失败返回-1* */int append(sqlist *list, data_type element)
{if(NULL==list || 1==is_list_full(list)){return -1;}list->arr[list->len++]=element;return 0;
}/**判断顺序表是否为空* */int is_list_empty(sqlist *list)
{return list->len == 0 ? 1 : 0; }/**顺序表遍历** */void output(sqlist *list)
{if(NULL==list||1==is_list_empty(list)){printf("list is NULL!\n");return;}for(int i=0; i<list->len; i++){printf("%d\t", list->arr[i]);}putchar(10);}
====================
目录 / 学习笔记快速链接