赞
踩
只需要把顺序表的长度减1。
- /*
- *顺序表尾部删除
- * */
-
- int delete_tail(sqlist *list)
- {
-
- if(NULL==list || 1==is_list_empty(list))
- {
-
- return -1;
- }
-
- list->len--;
- return 0;
-
-
- }
- #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 delete_tail(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);
-
- puts("> --- delete tail element---");
- int ret = delete_tail(list);
- 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);
-
- }
-
- /*
- *顺序表尾部删除
- * */
-
- int delete_tail(sqlist *list)
- {
-
- if(NULL==list || 1==is_list_empty(list))
- {
-
- return -1;
- }
-
- list->len--;
- return 0;
-
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。