題目:順序表作業
代碼:
功能區:
#include <stdio.h>#include <stdlib.h>#include "./d2191.h"SeqList* create_seqList(){SeqList* list = (SeqList*)malloc(sizeof(SeqList));if(NULL== list){return NULL;}list->pos=0;//初始化要操作的位置為0return list;}void insert_seqList(SeqList* list,dataype num){//判斷順序表是否為滿if(list->pos >=N){printf("順序表為滿,插入失敗\n");return;}//在pos位置插入數據list->data[list->pos] = num;//將pos++(list->pos)++;printf("插入成功\n");return;}void show_seqList(SeqList* list){int i;for(i=0;i<=list->pos;i++){printf("%d ",list->data[i]);}printf("\n");}dataype del_seqList(SeqList* list){//判斷順序表是否為空if(list->pos > 0){(list->pos)--;dataype num =list->data[list->pos];return num;}}//從下標插入數據void index_seqList(SeqList* list,int index,int temp){int i ;if(index<=0||index>=N||list->pos >=N){printf("要插入的下標錯誤或者超出");return;}for(i=list->pos;i>index;i--){list->data[i]=list->data[i-1];}(list->pos)++;list->data[index]=temp;return;}//從下標刪除數據dataype deletebyindex_seqList(SeqList* list,int index){int i;if(index<=0||index>=N||list->pos >=N){printf("要刪除的下標錯誤或者超出");return 0;}int beifen=list->data[index];for(i=index;i<list->pos;i++){list->data[i]=list->data[i+1];}(list->pos)--;return beifen;}//從下標修改數據void update_seqList(SeqList* list,int index,int newnum){if(index<0||index>list->pos){printf("非法輸入\n");return;}list->data[index]=newnum;printf("修改成功\n");return;}//按下標查找數據dataype find_seqList(SeqList* list,int index){if(index<0||index>list->pos){printf("非法輸入\n");return 0;}return list->data[index];}//按數據修改數據void updatebydata_seqList(SeqList* list,int oldnum,int newnum){int i;for(i=0;i<list->pos;i++){if(list->data[i]==oldnum){list->data[i]=newnum;}}printf("更新完成\n");return ;}//按數據查找位置int selectbydata_seqList(SeqList* list,int num){int i;for(i=0;i<list->pos;i++){if(list->data[i]==num){return i;}}
函數調用區:
include <stdio.h>
include "./d2191.h"
nt main(int argc, const char *argv[])//創建一個順序表SeqList* list = create_seqList();//從尾部插入數據insert_seqList(list,10);insert_seqList(list,100);insert_seqList(list,1000);insert_seqList(list,10000);insert_seqList(list,10);//從尾部刪除printf("%d\n", del_seqList(list));//從下標插入數據index_seqList(list,5,888);show_seqList(list);//從下標刪除數據printf("%d\n",deletebyindex_seqList(list,3));show_seqList(list); //從下標修改數據update_seqList( list,3,66);show_seqList(list);//按下標查找數據printf("查找的數據是%d\n",find_seqList(list,3));//按數據修改數據updatebydata_seqList(list,10,11);show_seqList(list);//按數據查找位置printf("該數字在第幾個%d\n",selectbydata_seqList(list,66));return 0;
頭文件區:
#ifndef FUNC_C_#define FUNC_C_#define N 6//順序表容量typedef int dataype;typedef struct{dataype data[N];//順序表int pos;//記錄要操作順序表的位置}SeqList;SeqList* create_seqList();void insert_seqList(SeqList* list,dataype num);void show_seqList(SeqList* list);dataype del_seqList(SeqList* list) ;void index_seqList(SeqList* list,int index,int temp);dataype deletebyindex_seqList(SeqList* list,int index);void update_seqList(SeqList* list,int index,int newnum);dataype find_seqList(SeqList* list,int index);void updatebydata_seqList(SeqList* list,int oldnum,int newnum);int selectbydata_seqList(SeqList* list,int num);#endif
運行結果: