真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

c語言調(diào)用線性表函數(shù) 用c語言編寫線性表的結(jié)構(gòu)定義

求線性表的C語言程序

第一個(gè)文件commom.h

10多年的阿圖什網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。營銷型網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整阿圖什建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“阿圖什網(wǎng)站設(shè)計(jì)”,“阿圖什網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

#include stdio.h

#include stdlib.h

#include malloc.h

#define OK 1

#define ERROR 0

#define TRUE 1

#define FALSE 0

第二個(gè)文件seqlist.h

#define ElemType int

#define MAXSIZE 100 /*此處的宏定義常量表示線性表可能達(dá)到的最大長度*/

typedef struct

{

ElemType elem[MAXSIZE]; /*線性表占用的數(shù)組空間*/

int last; /*記錄線性表中最后一個(gè)元素在數(shù)組elem[ ]中的位置(下標(biāo)值),空表置為-1*/

}SeqList;

第三個(gè)文件locate.cpp

#include "common.h"

#include "seqlist.h"

int Locate(SeqList L, ElemType e)

{

int i=0; /*i為掃描計(jì)數(shù)器,初值為0,即從第一個(gè)元素開始比較*/

while ((i=L.last)(L.elem[i]!=e)) /*順序掃描表,直到找到值為key的元素, 或掃描到表尾而沒找到*/

i++;

if (i=L.last)

return(i+1); /*若找到值為e的元素,則返回其序號(hào)*/

else

return(-1); /*若沒找到,則返回空序號(hào)*/

}

void main()

{

SeqList l;

int p,q,r;

int i;

printf("請輸入線性表的長度:");

scanf("%d",r);

l.last = r-1;

printf("請輸入線性表的各元素值:\n");

for(i=0; i=l.last; i++)

{

scanf("%d",l.elem[i]);

}

printf("請輸入要查找的元素值:\n");

scanf("%d",q);

p=Locate(l,q);

if(p == -1)

printf("在此線性表中沒有該元素!\n");

else

printf("該元素在線性表中的位置為:%d\n",p);

}

第四個(gè)文件InsList.cpp

#include "common.h"

#include "seqlist.h"

/*在順序表L中第i個(gè)數(shù)據(jù)元素之前插入一個(gè)元素e。 插入前表長n=L-last+1,

i的合法取值范圍是 1≤i≤L-last+2 */

int InsList(SeqList *L,int i,ElemType e)

{

int k;

if((i1) || (iL-last+2)) /*首先判斷插入位置是否合法*/

{

printf("插入位置i值不合法");

return(ERROR);

}

if(L-last= MAXSIZE-1)

{

printf("表已滿無法插入");

return(ERROR);

}

for(k=L-last;k=i-1;k--) /*為插入元素而移動(dòng)位置*/

L-elem[k+1]=L-elem[k];

L-elem[i-1]=e; /*在C語言數(shù)組中,第i個(gè)元素的下標(biāo)為i-1*/

L-last++;

return(OK);

}

void main()

{

SeqList *l;

int p,q,r;

int i;

l=(SeqList*)malloc(sizeof(SeqList));

printf("請輸入線性表的長度:");

scanf("%d",r);

l-last = r-1;

printf("請輸入線性表的各元素值:\n");

for(i=0; i=l-last; i++)

{

scanf("%d",l-elem[i]);

}

printf("請輸入要插入的位置:\n");

scanf("%d",p);

printf("請輸入要插入的元素值:\n");

scanf("%d",q);

InsList(l,p,q);

for(i=0; i=l-last; i++)

{

printf("%d ",l-elem[i]);

}

}

第五個(gè)文件DelList.cpp

#include "common.h"

#include "seqlist.h"

int DelList(SeqList *L,int i,ElemType *e)

/*在順序表L中刪除第i個(gè)數(shù)據(jù)元素,并用指針參數(shù)e返回其值。i的合法取值為1≤i≤L.last+1 */

{

int k;

if((i1)||(iL-last+1))

{

printf("刪除位置不合法!");

return(ERROR);

}

*e = L-elem[i-1]; /* 將刪除的元素存放到e所指向的變量中*/

for(k=i; i=L-last; k++)

L-elem[k-1] = L-elem[k]; /*將后面的元素依次前移*/

L-last--;

return(OK);

}

void main()

{

SeqList *l;

int p,r;

int *q;

int i;

l = (SeqList*)malloc(sizeof(SeqList));

q = (int*)malloc(sizeof(int));

printf("請輸入線性表的長度:");

scanf("%d",r);

l-last = r-1;

printf("請輸入線性表的各元素值:\n");

for(i=0; i=l-last; i++)

{

scanf("%d",l-elem[i]);

}

printf("請輸入要?jiǎng)h除的元素位置:\n");

scanf("%d",p);

DelList(l,p,q);

printf("刪除的元素值為:%d\n",*q);

}

第六個(gè)文件merge.cpp

#include "common.h"

#include "seqlist.h"

void merge(SeqList *LA, SeqList *LB, SeqList *LC)

{

int i,j,k;

i=0;j=0;k=0;

while(i=LA-lastj=LB-last)

if(LA-elem[i]=LB-elem[j])

{

LC-elem[k]= LA-elem[i];

i++;

k++;

}

else

{

LC-elem[k]=LB-elem[j];

j++;

k++;

}

while(i=LA-last) /*當(dāng)表LA有剩余元素時(shí),則將表LA余下的元素賦給表LC*/

{

LC-elem[k]= LA-elem[i];

i++;

k++;

}

while(j=LB-last) /*當(dāng)表LB有剩余元素時(shí),則將表LB余下的元素賦給表LC*/

{

LC-elem[k]= LB-elem[j];

j++;

k++;

}

LC-last=LA-last+LB-last+1;

}

void main()

{

SeqList *la,*lb,*lc;

int r;

int i;

la=(SeqList*)malloc(sizeof(SeqList));

printf("請輸入線性表A的長度:");

scanf("%d",r);

la-last = r-1;

printf("請輸入線性表A的各元素值:\n");

for(i=0; i=la-last; i++)

{

scanf("%d",la-elem[i]);

}

lb=(SeqList*)malloc(sizeof(SeqList));

printf("請輸入線性表B的長度:");

scanf("%d",r);

lb-last = r-1;

printf("請輸入線性表B的各元素值:\n");

for(i=0; i=lb-last; i++)

{

scanf("%d",lb-elem[i]);

}

lc=(SeqList*)malloc(sizeof(SeqList));

merge(la,lb,lc);

printf("合并后線性表C中的元素為:\n");

for(i=0; i=lc-last; i++)

{

printf("%d ",lc-elem[i]);

}

}

包含了線性表插入,查找,刪除,合并運(yùn)算。

數(shù)據(jù)結(jié)構(gòu) 線性表 用c語言

#define MAXSIZE 100 //表中元素的最大個(gè)數(shù)

typedef int ElemType;//元素類型

typedef struct list{

ElemType elem[MAXSIZE];//靜態(tài)線性表

int length; //表的實(shí)際長度

}SqList;//順序表的類型名

線性表的操作,C語言

#include"stdio.h"

#includemalloc.h

typedef char ElemType;

typedef struct LNode

{ElemType data;

struct LNode *next;

}LinkList;

void CreatListF(LinkList *L,ElemType a[],int n) //頭插法建表

{

LinkList *s;int i;

L=(LinkList *)malloc(sizeof(LinkList));

L-next=NULL;

for(i=0;in;i++)

{

s=(LinkList *)malloc(sizeof(LinkList));

s-data=a[i];

s-next=L-next;

L-next=s;

}

}

void CreateListR(LinkList *L,ElemType a[],int n) //尾插法建表

{

LinkList *s,*r;int i;

L=(LinkList *)malloc(sizeof(LinkList));

r=L;

for(i=0;in;i++)

{

s=(LinkList *)malloc(sizeof(LinkList));

s-data=a[i];

r-next=s;

r=s;

}

r-next=NULL;

}

void InitList(LinkList *L) //初始化線性表

{

L=(LinkList *)malloc(sizeof(LinkList));

L-next=NULL;

}

void DestroyList(LinkList *L) //銷毀線性表

{

LinkList *p=L,*q=p-next;

while(q!=NULL)

{

free(p);

p=q;

q=p-next;

}

free(p);

}

int ListEmpty(LinkList *L) //判斷線性表是否為空

{

return(L-next==NULL);

}

int ListLength(LinkList *L) //求線性表的長度

{

LinkList *p=L;int n=0;

while(p-next!=NULL)

{

n++;p=p-next;

}

return(n);

}

void DispList(LinkList *L) //輸出線性表

{

LinkList *p=L-next;

while(p!=NULL)

{

printf("%c",p-data);

p=p-next;

}

}

int GetElem(LinkList *L,int i,ElemType e) //求線性表中某個(gè)數(shù)據(jù)元素值

{

int j=0;

LinkList *p=L;

while(jip!=NULL)

{

j++;p=p-next;

}

if(p==NULL)

return 0;

else

{

e=p-data;return 1;

}

}

int LocateElem(LinkList *L,ElemType e) //按元素值查找

{

LinkList *p=L-next;

int i=1;

while(p!=NULLp-data!=e)

{

p=p-next;i++;

}

if(p==NULL)return(0);

else return(i);

}

int ListInsert(LinkList *L,int i,ElemType e) //插入數(shù)據(jù)元素

{

int j=0;

LinkList *p=L,*s;

while(ji-1p!=NULL)

{

j++;p=p-next;

}

if(p==NULL)return 0;

else

{

s=(LinkList *)malloc(sizeof(LinkList));

s-data=e; s-next=p-next; p-next=s;

return 1;

}

}

int ListDelete(LinkList *L,int i,ElemType e) //刪除數(shù)據(jù)元素

{

int j=0;

LinkList *p=L,*q;

while(ji-1p!=NULL)

{

j++;p=p-next;

}

if(p==NULL)

return 0;

else

{

q=p-next;

if(q==NULL)return 0;

e=q-data;

p-next=q-next;

free(q);

return 1;

}

}

int main()

{

ElemType e,a[5]={'a','b','c','d','e'};

LinkList *h;

InitList(h); //初始化順序表h

CreateListR(h,a[0],5); //依次采用尾插入法插入a,b,c,d,e元素

printf("單鏈表為:");

DispList(h); printf("\n"); //輸出順序表h

printf("該單鏈表的長度為:");

printf("%d",ListLength(h)); printf("\n"); //輸出順序表h的長度

if(ListEmpty(h)) printf("該單鏈表為空。\n");

else printf("該單鏈表不為空。\n"); //判斷順序表h是否為空

GetElem(h,3,e);printf("該單鏈表的第3個(gè)元素為:");

printf("%c",e); printf("\n"); //輸出順序表h的第3個(gè)元素

printf("該單鏈表中a的位置為:");

printf("%d",LocateElem(h,'a')); printf("\n"); //輸出元素'a'的位置

ListInsert(h,4,'f'); //在第4個(gè)元素位置插入'f'素

printf("在第4 個(gè)元素位置上插入'f'后單鏈表為:");

DispList(h); printf("\n"); //輸出順序表h

ListDelete(h,3,e); //刪除L的第3個(gè)元素

printf("刪除第3個(gè)元素后單鏈表為:");

DispList(h); printf("\n"); //輸出順序表h

DestroyList(h); //釋放順序表h

return 0;

}


本文題目:c語言調(diào)用線性表函數(shù) 用c語言編寫線性表的結(jié)構(gòu)定義
URL分享:http://weahome.cn/article/ddjcihi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部