誰能給簡單的線性表操作c語言完整程式

時間 2021-06-30 23:18:52

1樓:魔尊

這是我以前寫的作業,比你這個題的要求還要多,肯定能滿足你的要求。

#include"stdio.h"

#include

typedef char elemtype;

typedef struct lnode

linklist;

尾插法建表

r->next=null;

初始化線性表

void displist(linklist *l) //輸出線性表

兩個集合的交

a=a->next;

}q=q->next;

a=p;

}b->next=null;

兩個集合的並

if(!x)

q=q->next;

p=a;

}b->next=a;

按從小到大排列}}

int main()

,b[4]=;

linklist *h1,*h2,*p1,*p2;

initlist(h1); //初始化順序表h

initlist(h2);

依次採用尾插入法插入a,b,c,d,e元素

createlistr(h2,&b[0],4);

printf("單鏈表1為:");

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

printf("單鏈表2為:");

displist(h2); printf("\n");

comblist(h1,h2,p1); //求兩個單鏈表的交

printf("這兩個單鏈表的交為:");

displist(p1); printf("\n");

addlist(h1,h2,p2); //求兩個單鏈表的並

printf("這兩個單鏈表的並為:");

displist(p2); printf("\n");

ranklist(p2); //對單鏈表按從小到大排列

printf("這個單鏈表排列後為:");

displist(p2); printf("\n");

return 0;}

2樓:匿名使用者

1、線性表有兩種:

typedef struct  sqlist;//順序表

void initlist_sq (sqlist& l) //初始化順序表

然後sqlist la;

initlist_sq(la);

就可以typedef struct lnodelnode,*linklist;//線性鍊表

//單鏈表可以有效的利用主存的碎片,它的資料域不是連續的

2、例程:

#include"stdio.h"

#include

typedef char elemtype;

typedef struct lnode

linklist;

頭插法建表

尾插法建表

r->next=null;

初始化線性表

銷毀線性表

free(p);

}int listempty(linklist *l)    //判斷線性表是否為空

int listlength(linklist *l)    //求線性表的長度

return(n);

}void displist(linklist *l)   //輸出線性表

求線性表中某個資料元素值

if(p==null)

return 0;

else

}int locateelem(linklist *l,elemtype e)    //按元素值查詢

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

else return(i);

插入資料元素

if(p==null)return 0;

else

刪除資料元素

if(p==null)

return 0;

else

}int main()

;linklist *h;

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

依次採用尾插入法插入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個元素為:");

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

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

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

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

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

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

listdelete(h,3,e);                           //刪除l的第3個元素

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

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

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

return 0;}

c語言建立乙個線性表,然後輸出線性表,如何編寫程式?

3樓:包遠志

#include

#include

#include

#defineoverflow -2

#define ok 1

#define error 0

#definelist_init_size 100

#definelistincrement 10

typedef intelemtype;

typedef intstatus;

//定義順序儲存結構

typedef struct

sqlist;

//初始化順序表

statusinitlist_sq(sqlist &l)

//自定義建立順序表

voidcreate_sqlist(sqlist &l)

l.elem[i++]=c;

}l.length=i;

printf("輸入的順序表元素:\n");

for(i=0;il.length+1)

if(l.length>=l.listsize)

if(i==l.length) l.elem[i+1]=e;

q=&(l.elem[i-1]);

for(p=&(l.elem[l.length-1]);p>=q;--p)*(p+1)=*p;

*q=e;

++l.length;

return ok;

}//在指定位置刪除元素

void main()

create_sqlist(l);

for(m=0;m<3;m++)

printf("插入元素:");

scanf("%d",&element);

if(!listinsert(l,location,element))

printf("插入順序表為:\n");

for(int i=0;i<=l.length -1;i++)

printf("\n新順序表一共有%d個元素。\n",l.length);

}for(n=0;n<3;n++)

printf("被刪除的元素為:%d \n",element);

printf("被刪除後的順序表為:\n");

for(int j=0;j<=l.length-1;j++)

printf("\n新順序表一共有%d個元素。\n",l.length);}}

這個是我最近編寫的 順序表也是線性表的

這裡還有鍊表的程式 用的話再傳給你

C語言 線性表的實現,線性表的基本操作c語言實現

不是沒錯誤了。首先你就少了標頭檔案。include 先加上這個標頭檔案你再看看。好象還有些錯誤。好象是關於你的那個列舉的哇。資料結構c語言版 使用線性表的順序儲存結構定義 靜態 實現線性表的初 線性表的基本操作c語言實現 譚浩強的c語言教程上面有完整的程式。用c語言編寫鏈式儲存結構下實現線性表的建立...

如何進行初始化操作,建立空的線性表List

你沒說清楚,線性表有兩種,順序表和鍊表下面我分別寫函式實現吧 順序表初始化 include include define list init size 5 define listincrement 10 define overflow 2 typedef int status typedef int...

c事件到底怎麼寫,誰能給舉個最簡單的例子,包括定義事件,訂閱事件,觸發事件的完整流程

事件就是一個委託,這個有點多,那天有空發 計算機程式語言的程式設計軟體需要什麼語言?程式語言一共有多少種?最簡單的程式語言是什麼 源白鶴 其實最簡單的程式語言是scratch,c和vb一點也不簡單 開源的程式語言有哪些? 草原上之狼 開源指的是源 是開放的,可以獲取的,至於程式語言,主要有指令碼和編...