hncu1326鍊錶

2021-06-16 20:23:56 字數 2602 閱讀 8088

鍊錶是資料結構中一種最基本的資料結構,它是用鏈式儲存結構實現的線性表。它較順序表而言在插入和刪除時不必移動其後的元素。現在給你一些整數,然後會頻繁地插入和刪除其中的某些元素,會在其中某些時候讓你查詢某個元素或者輸出當前鍊錶中所有的元素。

下面給你基本的演算法描述:

圖1:鍊錶型別的定義以及獲得鍊錶元素的演算法描述

圖2:鍊錶的插入演算法描述

圖3:鍊錶的刪除演算法描述

圖4:鍊錶的建立演算法描述

輸入資料只有一組,第一行有n+1個整數,第乙個整數是這行餘下的整數數目n,後面是n個整數。這一行整數是用來初始化列表的,並且輸入的順序與列表中的順序相反,也就是說如果列表中是1、2、3那麼輸入的順序是3、2、1。

第二行有乙個整數m,代表下面還有m行。每行有乙個字串,字串是「get」,「insert」,「delete」,「show」中的一種。如果是「get」或者「delete」,則其後跟著乙個整數a,代表獲得或者刪除第a個元素;如果是「insert」,則其後跟著兩個整數a和e,代表在第a個位置前面插入e;「show」之後沒有整數。

如果獲取成功,則輸出該元素;如果刪除成功則輸出「delete ok」;如果獲取失敗或者刪除失敗,則輸出「get fail」以及「delete fail」。如果插入成功則輸出「insert ok」,否則輸出「insert fail」。如果是「show」則輸出列表中的所有元素,如果列表是空的,則輸出「link list is empty」。注:所有的雙引號均不輸出。

3 3 2 1

21show

delete 1

show

delete 2

show

delete 1

show

delete 2

insert 2 5

show

insert 1 5

show

insert 1 7

show

insert 2 5

show

insert 3 6

show

insert 1 8

show

get 2

1 2 3

delete ok

2 3delete ok

2delete ok

link list is empty

delete fail

insert fail

link list is empty

insert ok

5insert ok

7 5insert ok

7 5 5

insert ok

7 5 6 5

insert ok

8 7 5 6 5

7

#include#include#include/* malloc()等 */

#include/* eof(=^z或f6),null */

#include/* atoi() */

#includeusing namespace std;

#define error 0;

#define ok 1;

typedef int status;

typedef int elemtype;

typedef struct lnode

lnode,*linlist;

status getdate (linlist l,int i)

if(j>i||!q)

return error;

return q->date;

}status insertlin (linlist l,int i,elemtype e)

if(!q||j>i-1)

return error;

p=(linlist)malloc(sizeof(lnode));

p->date=e;

p->next=q->next;

q->next=p;

return ok;

}status deletelin (linlist l,int i)

if(!(q->next)||j>i-1)

return error;

p=q->next;

q->next=p->next;

free(p);

return ok;

}status showlist(linlist l)

if(k==0)

else

}int main()

{ int n,m,i,date,t,e;

char str[30];

cin>>n;

linlist l;

createlist(&l,n);

cin>>m;

while(m--)

{cin>>str;

if(strcmp(str,"get")==0)

{cin>>i;

date=getdate(l,i);

if(date)

cout<>i;

t=deletelin(l,i);

if(t)

cout>e;

t=insertlin(l,i,e);

if(t)

cout<

HNCU1327 演算法2 13 2 16 靜態鍊錶

靜態鍊錶是使用順序儲存結構來實現的鍊錶。嚴蔚敏 資料結構 c語言版 在介紹靜態鍊錶時使用的是乙個姓氏列表。圖1是書本上的靜態鏈表示例,圖 a 是初始化後插入了8個姓氏的鍊錶,圖 b 是在第5個元素前插入了 shi 而刪除了 wang 的結果。圖1 靜態鏈表示例 a 修改前的狀態 b 修改後的狀態 現...

codeup1326 鍊錶的基本操作

時空限制 1000ms 32mb 鍊錶是資料結構中一種最基本的資料結構,它是用鏈式儲存結構實現的線性表。它較順序表而言在插入和刪除時不必移動其後的元素。現在給你一些整數,然後會頻繁地插入和刪除其中的某些元素,會在其中某些時候讓你查詢某個元素或者輸出當前鍊錶中所有的元素。下面給你基本的演算法描述 圖1...

鍊錶 環形鍊錶

環形鍊錶也叫迴圈鍊錶 可以是雙鏈表 也可以是單鏈表 操作原理和單鏈表差不多,只是最後乙個節點不在指向空 null 而是頭 head 這裡以單鏈表舉例 description 環形鍊錶 author lzq date 2018 11 3 20 46 version 1.0 public class a...