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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据结构——线性表的C语言实现

發(fā)布時間:2024/7/19 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构——线性表的C语言实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

文章目錄

        • 1.什么是線性表?
        • 2.線性表的抽象數(shù)據(jù)類型
        • 3.線性表之順序表的C語言實現(xiàn)
        • 4.線性表之鏈?zhǔn)奖淼腃語言實現(xiàn)

1.什么是線性表?

2.線性表的抽象數(shù)據(jù)類型

3.線性表之順序表的C語言實現(xiàn)

#include<stdio.h> #include<stdlib.h>#define ElementType int #define MAXSIZE 5//1.定義結(jié)點和指針 typedef struct LNode *List; struct LNode{ElementType Data[MAXSIZE];int Last; }; struct LNode L; List PtrL;//2.初始化(建立一個空的順序表) List MakeEmpty() {List PtrL;PtrL = (List)malloc(sizeof(struct LNode));PtrL->Last = -1;return PtrL; }//3.查找 int Find(ElementType x,List PtrL) {int i=0;while(i<=PtrL->Last&&PtrL->Data[i]!=x){i++;}if(i>PtrL->Last){return -1;}elsereturn i; }//4.插入 void Insert(ElementType x,int i,List PtrL) {int j;if(PtrL->Last==MAXSIZE-1){printf("表已滿\n");return;}if(i<1||i>PtrL->Last+2){printf("位置不合法\n");return;}for(j=PtrL->Last;j>=i-1;j--){PtrL->Data[j+1]=PtrL->Data[j];}PtrL->Data[i-1]=x;PtrL->Last++;return; }//5.刪除 void Delete(int i,List PtrL) {int j;if(i<1||i>PtrL->Last+1){printf("不存在第%d個元素\n",i);}for(j=i;j<=PtrL->Last;j++){PtrL->Data[j-1]=PtrL->Data[j];}PtrL->Last--;return; }int main() {PtrL = MakeEmpty();PtrL->Data[0]=12;PtrL->Data[1]=15;PtrL->Data[2]=51;PtrL->Last=2;for(int i=0;i<=(PtrL->Last);i++){printf("%d ",PtrL->Data[i]);}printf("\n");/*int findnum;findnum = Find(51,PtrL);printf("findnum=%d\n",findnum);*//*Insert(6,2,PtrL);for(int i=0;i<=(PtrL->Last);i++){printf("%d\n",PtrL->Data[i]);} *//*Delete(2,PtrL);for(int i=0;i<=PtrL->Last;i++){printf("%d ",PtrL->Data[i]);}printf("\n");*/return 0; }

4.線性表之鏈?zhǔn)奖淼腃語言實現(xiàn)

#include<stdio.h> #include<stdlib.h>#define Element int typedef struct LNode *List; struct LNode{Element Data;List Next; };struct LNode L; List PtrL;//1.初始化 List Empty() {List PtrL;PtrL = (List)malloc(sizeof(struct LNode));PtrL->Next=NULL;return PtrL; }//2.求表長 int Length(List PtrL) {List p = PtrL;int j=0;while(p){p = p->Next;j++;}return j; }//3.按序號查找 List FindKth(int K,List PtrL) {int i=1;List p = PtrL;while(p!=NULL&&i<K){p=p->Next;i++;}if(i==K){return p;}else{return NULL;} }//4.按值查找 List Find(Element X,List PtrL) {List p=PtrL;while(p!=NULL&&p->Data!=X){p=p->Next;}return p; }//5.插入 List Insert(Element X,int i,List PtrL) {List p,s;if(i==1){s=(List)malloc(sizeof(struct LNode));s->Data=X;s->Next=PtrL;return s;}p=FindKth(i-1,PtrL);if(p==NULL){printf("參數(shù)錯誤\n");return NULL;}else{s=(List)malloc(sizeof(struct LNode));s->Data=X;s->Next=p->Next;p->Next=s;return PtrL;} }//6.刪除 List Delete(int K,List PtrL) {List p,s;if(K==1){s=PtrL;if(PtrL!=NULL){PtrL=PtrL->Next;}else{return NULL;}free(s);return PtrL;}p=FindKth(K-1,PtrL);if(p==NULL){printf("第%d個結(jié)點不存在\n",K-1);return NULL;}else if(p->Next==NULL){printf("第%d個結(jié)點不存在\n",K);return NULL;}else{s=p->Next;p->Next=s->Next;free(s);return PtrL;} }int main() {PtrL = Empty();PtrL = Insert(32,1,PtrL);PtrL = Insert(56,2,PtrL);PtrL = Insert(35,3,PtrL);PtrL = Insert(52,4,PtrL);/*List p=PtrL;for(int i=0;i<Length(PtrL)-1;i++){printf("%d ",p->Data);p=p->Next;}printf("\n");*//* PtrL = Delete(3,PtrL);List p2=PtrL;for(int i=0;i<Length(PtrL)-1;i++){printf("%d ",p2->Data);p2=p2->Next;} printf("\n");*/return 0; }

總結(jié)

以上是生活随笔為你收集整理的数据结构——线性表的C语言实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。