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一點也不簡單 開源的程式語言有哪些? 草原上之狼 開源指的是源 是開放的,可以獲取的,至於程式語言,主要有指令碼和編...