日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

线性表操作的基本应用

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线性表操作的基本应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

#include"stdio.h"
#include"stdlib.h"


#define MAXSIZE 10
#define OK 1

#define YES 1
#define NO 0
?

?struct Sqlist
{
?? ?int a[MAXSIZE];
?? ?int length;
?};
?
void listlength(Sqlist *list)
{
?? ?printf("線性表得長度:%d\n",list->length);
}

int emptylist(Sqlist list)??? //判斷線性表是否為空;
{
?? ?if(list.length==0)
?? ?{
?? ??? ?return YES;
?? ?}
?? ?else
?? ?{
?? ??? ?return NO;
?? ?}
?}
?
int initlist(Sqlist *list)
{
?? ?list->length=0;
?? ?return OK;
}
?
void listinsert(Sqlist *list,int num,int n)
{
?? ?int i;
?? ?for(i=MAXSIZE-1;i>=n;i--)
?? ?{
?? ??? ?list->a[i]=list->a[i-1];
?? ?}
?? ?list->a[n-1]=num;
?? ?list->length ++;
}

void printlist(Sqlist list)
{
?? ?printf("數據:");
?? ?for(int i=0;i<list.length;i++)
?? ?{
?? ??? ?printf("%3d",list.a[i]);
?? ?}
?? ?
}
?
void clearlist(Sqlist *list)
{
?? ?list->length=0;
}


int deldata(Sqlist *list,int num,int sign)
{
?? ?int i;
?? ?

?? ?
?? ?for(i=0;i<list->length;i++)
?? ?{?? ?
?? ??? ?
?? ??? ?if(list->a[i]==num)
?? ??? ?{?? ?
?? ??? ??? ?for(int k=i;k<list->length;k++)
?? ??? ??? ?{
?? ??? ??? ??? ?list->a[k]=list->a[k+1];
?? ??? ??? ?}
?? ??? ??? ?sign=1;
?? ??? ?}
?? ?}
?? ?if(sign==1)
?? ?{
?? ??? ?list->length --;
?? ?}
?? ?return sign;
}

void locateElem(Sqlist list,int num)
{
?? ?int i,sign,j;
?? ?for(i=0;i<list.length;i++)
?? ?{
?? ??? ?if(num==list.a[i])
?? ??? ?{
?? ??? ??? ?sign=1;
?? ??? ??? ?j=i+1;
?? ??? ??? ?break;
?? ??? ?}
?? ??? ?else
?? ??? ?{
?? ??? ??? ?sign=0;
?? ??? ?}
?? ??? ?
?? ?}
?? ?if(sign==1)
?? ?{
?? ??? ?printf("%d存在,在第%d位",num,j);
?? ?}
?? ?else
?? ?{
?? ??? ?printf("%d不存在",num);
?? ?}
}
?
?
int main()
{
?? ?struct Sqlist list;
?? ?int i;
?? ?i=initlist(&list);? //初始化性表
?? ?
?? ?i=emptylist(list); ?? ?//判斷線性表是否為空
?? ?if(i=1)
?? ?{
?? ??? ?printf("線 性 表 為 空\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("線 性 表 不 為 空\n");
?? ?}
?? ?
?? ?for(int j=1;j<=5;j++)
?? ?{
?? ??? ?listinsert(&list,j,1);
?? ?}
?? ?listlength(&list);?? //線性表的長度 ?

?? ?printlist(list);?? //顯示表里得數據項;
?? ?printf("\n");
?? ?
?? ?clearlist(&list);
?? ?printf("清空線性表中:\n");
?? ?i=emptylist(list);
?? ?if(i=1)
?? ?{
?? ??? ?printf("清空成功\n");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("ERROR\n");
?? ?}
?? ?
?? ?printlist(list);
?? ?printf("\n");
?? ?printf("加入新的數據項:\n");
?? ?for(int j=1;j<=10;j++)
?? ?{
?? ??? ?listinsert(&list,j,1);
?? ?}
?? ?printlist(list);
?? ?printf("\n");
?? ?listlength(&list);
?? ?
?? ?
?? ?//刪除數據
?? ?int sign=0,num;
?? ?printf("刪除的數據:");
?? ?scanf("%d",&num);
?? ?getchar();
?? ?
?? ?sign=deldata(&list,num,sign);
?? ?
?? ?if(sign==0)
?? ?{
?? ??? ?printf("刪除得元素不存在");
?? ?}
?? ?else
?? ?{
?? ??? ?printf("刪除后:");
?? ??? ?printlist(list);
?? ?}
?? ?printf("\n");
?? ?
?? ?
?? ?//查找某一元素是否存在
?? ?printf("輸入查找得元素:");
?? ?scanf("%d",&num);
?? ?getchar();
?? ?locateElem(list,num);
?? ?
?? ?
}

總結

以上是生活随笔為你收集整理的线性表操作的基本应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。