資料結構鍊錶理解練習

2022-08-17 22:09:15 字數 3731 閱讀 7892

有效輸入域檢測

bool chec(int max, int

k) cout

<< "

the number must 1 to

"<< max <

;

return

false;}

//輸出有效資料

void put(const

int (&a)[n], int

n) cout

<

for (int i = 0; i < n; i++)

}//刪除int del(int (&a)[n], int

k) a[n - 1] = 0

;

return

temp;}//

插入void ins(int (&a)[n], int k, int

x) a[k - 1] =x;}//

比較bool match(const

int (&a)[n])

}return

true;}

intmain()

put(ar, n);

while (!gameover)

while (!chec(n, key1));

int temp =del(ar, key1);

put(ar, n - 1

); cout

<< "

printf insert postion:";

do while (!chec(n, key2));

ins(ar, key2, temp);

put(ar, n);

sub++;

if(match(ar))

}return0;

}

#include #include 

#include

#include

using

namespace

std;

const

int n = 15

;typedef

struct node *list;

struct

node;//

檢測輸入

bool chec(int max, int

k) cout

<< "

the number must 1 to

"<< max << ":"

;

return

false;}

//建立鍊錶

list createlist(int

n)

return

head;}//

輸出鍊錶

void printlist(list t, intl)}

//刪除

list del(list &t, int

k)

else

rtemp = temp->next;

temp->next = rtemp->next;

rtemp->next =null;

return

rtemp;

}}//

插入void ins(list &t, int k, list &p)

else

p->next = temp->next;

temp->next =p;

}}//

比較bool match(list &t, int

n)

else

}return

true;}

//編號輸出

void put(int

n) cout

<

}int

main()

while (!chec(n, key1));

put(n - 1

); list temp =del(l1, key1);

printlist(l1, n - 1

); cout

<< "

printf insert postion:";

do while (!chec(n, key2));

put(n);

ins(l1, key2, temp);

printlist(l1, n);

sub++;

if(match(l1, n))

}return0;

}

//節點定義

typedef node* list;

strcut node

elementtype data;

list next;

線性表常規操作:

list makeempty(); //初始化空表

elementtype findkth(int k, list l); //根據位序k返回相應元素;

int find(elementtype x, list l); //根據元素x,返回在表中對應的位置;

int length(list l); //返回線性表長度;

void delete(int k, list l); //刪除指定位置元素;

void insert(elementtype x, int k, list l); //在指定位置插入指定元素;

#pragma gcc diagnostic error "-std=c++11"#include 

using

namespace

std;

template

struct

lnode

;template

using list = lnode*;

//建立空鍊錶

template list

createlist()

//求表長

template int length(listn)

returni;}

//查詢特定元素

template list

findkth(int k, listn)

else

return

temp;

}}//

控值查詢

template int find(t x, listn)

if (i >length(n))

else}//

插入節點

template void insert(t x, int k, list&n)

else

else

}}//

刪除節點

template void delet(int k, list&n)

else

if (k !=length(n))

else}//

輸出鍊錶值

template void printlist(listn)

cout

<

}int

main()

資料結構練習 鍊錶

最近開始學資料結構,準備把做的習題 屯部落格裡。pragma once include include using namespace std 復合類 class list class linknode class list 巢狀類 class list linknode first 用struct...

資料結構練習 雙向鍊錶

複習一下資料結構。說不准下個星期就用上了 只不過寫的很簡單,沒有封裝 doublelinklist.h ifndef guard doublelinklist h define guard doublelinklist h include struct listnode listnode getne...

資料結構基礎 鍊錶練習

例題6 4 破損的鍵盤 鍊錶 include include const int maxn 100000 5 int last,cur,next maxn 游標位於cur號字母的後面 char s maxn int main for int i next 0 i 0 i next i printf ...