赞
踩
运行结果
fun.c
- #include "fun.h"
- seq_p create_seq_list()
- {
- seq_p L = (seq_p)malloc(sizeof(seq_list));
- if(L==NULL)
- {
- printf("空间申请失败\n");
- return NULL;
- }
- L->len = 0;
- bzero(L,sizeof(L->data));
- return L;
- }
- int seq_empty(seq_p L)
- {
- if(L==NULL)
- {
- return -1;
- }
- return L->len==0?1:0;
- }
-
- int seq_full(seq_p L)
- {
- if(L==NULL)
- {
- return -1;
- }
- return L->len==MAX?1:0;
- }
- void insert_head(seq_p L,int data)
- {
- if(L==NULL)
- {
- printf("入参为空,请检查\n");
- return;
- }
- if(seq_full(L))
- {
- printf("表已满,不能插入\n");
- return;
- }
- for(int i=L->len-1;i>=0;i--)
- {
- L->data[i+1] = L->data[i];
- }
-
- L->data[0]=data;
- L->len++;
- }
- void insert_tail(seq_p L,int value)
- {
- if(L==NULL)
- {
- printf("入参为空,请检查\n");
- return;
- }
- if(seq_full(L))
- {
- printf("表已满,不能插入\n");
- return;
- }
- L->data[L->len]=value;
- L->len++;
- }
-
- void out_put(seq_p L)
- {
- for(int i=0;i<L->len;i++)
- {
- printf("%d\n",L->data[i]);
- }
- }
-
- void insert_pos(seq_p L,int value,int pos)
- {
- if(L==NULL)
- {
- printf("入参为空,请检查\n");
- return;
- }
- if(seq_full(L))
- {
- printf("表已满,不能插入\n");
- return;
- }
- if(pos>L->len||pos<0)
- {
- printf("位置不合理");
- return;
- }
- for(int i=L->len-1;i>=pos;i--)
- {
- L->data[i+1]=L->data[i];
- }
- L->data[pos]=value;
- L->len++;
- }
-
- void del_pos(seq_p L,int pos)
- {
- if(L==NULL)
- {
- printf("入参为空,请检查\n");
- return;
- }
- if(seq_empty(L))
- {
- printf("表为空,无需删除\n");
- return;
- }
- for(int i=pos;i<L->len-1;i++)
- {
- L->data[i]=L->data[i+1];
- }
- L->len--;
- }
-
- void del(seq_p L)
- {
- if(L==NULL){return;}
- if(seq_empty(L)){return;}
- if(L->len==1){printf("只有一个元素\n");return;}
- for(int i=0;i<L->len;i++)
- {
- for(int j=i+1;j<L->len;j++)
- {
- if(L->data[i]==L->data[j])
- {
- del_pos(L,j);
- j--;
- }
- }
- }
- }
fun.h
- #ifndef __SEQ_LIST_H__
- #define __SEQ_LIST_H__
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define MAX 7
- typedef struct seq_list
- {
- int data[MAX];
- int len;
- }
- seq_list,*seq_p;
- seq_p create_seq_list();
- int seq_empty(seq_p L);//判满
- int seq_full(seq_p L);//判空
- void insert_head(seq_p L,int data);//头插
- void insert_tail(seq_p L,int value);//尾插
- void out_put(seq_p L);//输出
- void insert_pos(seq_p L,int value,int pos);//按下标插入
- void del_pos(seq_p L,int pos);//按下标删除
- void del(seq_p L);//去重
- #endif
-
main.c
- #include "fun.h"
- int main()
- {
- seq_p L = create_seq_list();
- insert_head(L,10);
- insert_head(L,20);
- insert_tail(L,20);
- insert_tail(L,30);
- out_put(L);
- putchar(10);
- insert_pos(L,50,2);
- out_put(L);
- putchar(10);
- del_pos(L,2);
- out_put(L);
- putchar(10);
- del(L);
- out_put(L);
- return 0;
- }
链表
- //尾插
- void insert_tail(link_p H,link_p T,datatype data)
- {
- if(T==NULL)
- {
- printf("入参为空,请检查\n");
- return;
- }
- link_p new = create_node(data);
- T->next=new;
- H->len++
- }
- //输出
- void out_put(link_p H)
- {
- for(int i=0;i<H->len;i++)
- {
- printf("%d\n",(H->next)->data);
- H->next=(H->next)->next;
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。