基礎資料結構 線性表 單鏈表的結點交換

2022-08-11 10:21:13 字數 2246 閱讀 4475

實現單鏈表,含頭結點

屬性包括:data資料域、next指標域

操作包括:插入、刪除、查詢

注意:單鏈表不是陣列,所以位置從1開始對應首結點,頭結點不放資料輸入n

第1行先輸入n表示有n個資料,接著輸入n個資料

第2行輸入要插入的位置和新資料

第3行輸入要插入的位置和新資料

第4行輸入要刪除的位置

第5行輸入要刪除的位置

第6行輸入要查詢的位置

第7行輸入要查詢的位置輸出n

資料之間用空格隔開,

第1行輸出建立後的單鏈表的資料

每成功執行一次操作(插入或刪除),輸出執行後的單鏈表資料

每成功執行一次查詢,輸出查詢到的資料

如果執行操作失敗(包括插入、刪除、查詢等失敗),輸出字串error,不必輸出單鏈表

樣例輸入

6 11 22 33 44 55 66

3 777

1 888111

05樣例輸出

11 22 33 44 55 66

1122 777 33 44 55 66

88811 22 777 33 44 55 66

11 22 777 33 44 55 66

error

error

44

#includeusing

namespace

std;

#define ok 1

#define error -1;

class

listnode

};

class

linklist

;

linklist::linklist()

linklist::~linklist()

len=0

; head=null;

}

void

linklist::ll_display()

cout

<}

listnode* linklist::ll_index(int

i)

return

p;

}

int linklist::ll_get(int

i)

int linklist::ll_insert(int i,int

item)

else

} int linklist::ll_del(int

i)

int linklist::swap(int pa, int

pb)

if(b->next==a)

a_pnex->next=b;

b->next=a_ppre;

b_pnex->next=a;

a->next=b_ppre;

return

ok;

} //

改變指標進行交換

int linklist::swap(listnode *p,listnode *q)

while(b_pnex->next!=q)

if(a->next==b)

if(b->next==a)

a_pnex->next=b;

b->next=a_ppre;

b_pnex->next=a;

a->next=b_ppre;

return

ok; }

/*改變量值進行交換

int linklist::swap(listnode *p,listnode *q)

*/int

main()

if(n!=0

)l.ll_display();

//第2行輸入要交換的兩個結點位置

cin>>num1>>num2;

if(l.swap(num1,num2)==-1)cout<<"

error

"

l.ll_display();

//第3行輸入要交換的兩個結點位置

cin>>num1>>num2;

if(l.swap(l.ll_index(num1),l.ll_index(num2))==-1)cout<<"

error

"

l.ll_display();

return

0;

}

資料結構 線性表 單鏈表

本文只要實現單鏈表的初始化 插入 尾插 頭插 任意位置插入 刪除 尾刪 頭刪 刪除指定元素 查詢等。定義單鏈表 typedef int datatype typedef struct linknode linknode,plinknode,plist 實現單鏈表的所有介面 void initlink...

資料結構 線性表 單鏈表

資料結構 線性表的鏈式表示 單鏈表 線性表元素序號從1算起 date 2017 4 13 include include define initsize 100 define elemtype char typedef struct lnodelnode,linklist linklist crea...

資料結構 線性表 單鏈表

include include 結構體的定義和數序表的定義 typedef int elemtype typedef struct node node 函式的宣告 void initnode node h int addnode node h,elemtype e void deletenode n...