順序表與鍊錶操作

2021-08-09 00:01:37 字數 2852 閱讀 3649

2-1-1 線性表seqlist的建立,**如下:

#define maxn 100 //線性表的最大長度

typedef struct

seqlist;

2-1-2順序表的插入運算,**如下:

#include#define maxn 100

typedef struct

seqlist;

int insert(seqlist *l,int i,int e)

if(l->last >= maxn-1)

for(int k = l->last; k >= i-1; k--)//為插入移動位置

l->elem[k+1] = l->elem[k];

l->elem[i-1] = e;

l->last++;

return 1;

}int main()

seqlist;

int delete(seqlist *l,int i,int *e)//順序表的刪除

*e=l->elem[i-1];//將刪除元素存放在e所指向的變數中

for(int k = i; k<=l->last; k++)

l->elem[k-1] = l->elem[k];//後面元素依次後移

l->last--;

return 1;

}int main()

2-2-2建立鍊錶並輸出,**如下:

#include#include#includetypedef struct note

note,*list;

void cf(list l)//頭插法建表

else flag = 0;

}}int main()

printf("%c\n",s->a);

printf("\n16031110208尚艷麗\n");

return 0;

}2-2-3單鏈表獲得第i個元素,**如下:

#include#include#includetypedef struct note

noet,*list;

note* get(list l,int i) //查詢第i個元素

if(i==j) //找到第i節點

return p;

else return null; //找不到返回空

}int main()

else

}int n;

printf("查詢元素位置:");

scanf("%d",&n);

note*r;

r=(note*)malloc(sizeof(note));

if(get(l,n)!=null)

printf("\n16031110208尚艷麗\n");

return 0;

}2-2-4單鏈表中插入元素,**如下:

#include#includetypedef struct note

note,*list1;

bool insert(list1 l,int i,int e)//單鏈表的插入

if(p==null)//如果當前位置為空表示已找完,但沒有到第i個元素說明插入位置不合理

s=(note*)malloc(sizeof(note)); //申請新的節點

s->a=e;

s->next=p->next; //修改指標 完成插入

p->next=s;

return true;

}int main()

else

}int n,m;

printf("插入元素位置和值:");

scanf("%d %d",&n,&m);

if(insert(l,n,m))

}else printf("插入錯誤\n");

printf("\n16031110208尚艷麗\n");

return 0;

}2-2-5單鏈表中刪除元素,**如下:

#include#includetypedef struct note

note,*list1;

bool dele(list1 l,int i,int *e) //單鏈表的刪除

if(p->next==null)

s=p->next;

p->next=s->next;//修改指標 刪除節點r

*e=s->a;

free(s); //釋放被刪除的節點所佔空間

return true;

}int main()

else

}int n,m;

printf("刪除元素位置:");

scanf("%d",&n);

if(dele(l,n,&m))

}else printf("\n刪除位置錯誤\n");

printf("16031110208尚艷麗\n");

return 0;

}2-3合併兩個單鏈表,**如下:

#include#includetypedef struct note

note,*list1;

void cf(list1 l) //建立單鏈表

else

}}note *mergelist(list1 la,list1 lb) //合併單鏈表

else

}if(pa) //表la未完

r->next=pa;

else //表lb未完

r->next=pb;

free(lb);

return lc;

}int main()

printf("\n16031110208尚艷麗\n");

return 0;

}

順序表與鍊錶

單向鍊錶 雙向鍊錶 迴圈鍊錶 插入刪除過程要注意,初始指標應指向鍊錶尾節點 若當插入到頭前時,找不到前驅節點 當在更新尾節點時需要更新頭指標 鍊錶排序使用氣泡排序最為適合 資料結構 結構定義 結構操作 include include include include define malloc2 my...

順序表與鍊錶

它是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串 邏輯上連續,物理上不一定連續 儲存方式 通常是陣列或者鏈式結構 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪...

順序表與鍊錶( )

鍊錶連續的儲存空間儲存任意元素。12 345結構定義 1 size 9 2 length 5 3 data type include include typedef struct vector vector void init vector vector,int size void clear ve...