資料結構實驗 鍊錶的基本操作

2021-10-21 07:38:26 字數 2060 閱讀 1715

#include //2-1儲存結構

typedef struct lnode

lnode,*linklist;

//2-2建立乙個長度為n的鍊錶、前插法

void creatlist_h(linklist &l,int n) //前插法建立單鏈表

}//2-2建立乙個長度為n的鍊錶、尾插法

void creatlist_r(linklist &l,int n) //後插法建立單鏈表

}//2-3在鍊錶的第i個位置插入乙個元素

void listinsert(linklist &l,int i,int e) //在i位置插入e

if(!p || j>i-1) return;

s=new lnode;

s->data =e;

s->next=p->next;

p->next=s;

}//2-4刪除鍊錶的第j個位置的元素

void listdelete(linklist &l,int i) //刪除i位置結點

if(!(p->next) || (j>i-1)) return;

q=p->next;

p->next=q->next;

delete q;

}//2-5獲取鍊錶中第k個位置的資料元素的值

int getelem(linklist &l,int i) //獲取鍊錶中第i個元素的值

if(!p || j>i) return -1;

return p->data;

}//2-6查詢鍊錶中第1個與e相等的元素,若查詢成功,則返回該元素在表中的位置序號,若查詢失敗,則返回0。

int locateelem(linklist l,int e)

if(p==null)

return 0;

else

return j;

}//主函式

int main()

printf("請依次輸入%d個元素(逆序):",n);//前插法

creatlist_h(l,n);

//printf("請依次輸入%d個元素:\n",n);//後插法

//creatlist_r(l,n);

printf("鍊錶中的原始資料為:");

p=l->next;

while (p!=null)

printf("\n");

printf("請輸入在鍊錶中插入資料的位置i:");

scanf("%d",&i);

printf("請輸入要插入的資料:");

scanf("%d",&e);

listinsert(l,i,e);

printf("在鍊錶的第%d個位置插入%d後的結果:",i,e);

p=l->next;

while (p!=null)

printf("\n");

printf("請輸入在鍊錶中刪除資料的位置j:");

scanf("%d",&j);

listdelete(l,j);

printf("刪除鍊錶的第%d個元素後的結果:",j);

p=l->next;

while (p!=null)

printf("\n");

printf("請輸入在鍊錶中獲取資料的位置k:");

scanf("%d",&k);

i=getelem(l,k);

if(i==-1)

printf("取值失敗。\n");

else

printf("鍊錶的第%d個元素是%d。\n",k,i);

printf("請輸入在鍊錶中查詢的資料e:");

scanf("%d",&e);

i=locateelem(l,e);

if(i==0)

printf("查詢失敗。\n");

else

printf("查詢成功,元素%d在鍊錶的第%d個位置。\n",e,i);

資料結構實驗 順序表的基本操作

include 1 1儲存結構 define maxsize 100 typedef struct sqlist 1 2初始化順序表並放入n個資料 void initlist sqlist l 1 3初始化順序表並放入n個資料 void listinsert sqlist l,int i,int e...

資料結構 順序表 鍊錶 基本操作

ifndef slist h define slist h include include include typedef int sltdatatype typedef struct slistnode slistnode typedef struct slist slist void slist...

c資料結構 鍊錶基本操作

鍊錶是一種線性結構,和順序表相比,鍊錶能充分利用磁碟上的空間,在對鍊錶進行插入刪除操作時,時間複雜度為o 1 相對於順序表,插入刪除時間複雜度為o n 但鍊錶需要額外的儲存指標的空間,且鍊錶不能隨機訪問。所以使用鍊錶還是使用順序表需要根據具體的使用場景。當多為查詢操作時使用順序表比較好,當刪除增加操...