師 鍊錶的結點插入

2021-09-10 15:50:45 字數 1565 閱讀 5942

time limit: 1000 ms memory limit: 65536 kib

給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放在鍊錶的最後。

多組輸入。每組資料首先輸入乙個整數n(n∈[1,100]),代表有n次操作。

接下來的n行,每行有兩個整數mi(mi∈[0,10000]),xi。

對於每組資料。從前到後輸出鍊錶的所有元素,兩個元素之間用空格隔開。

4

1 11 2

0 3100 4

3 1 2 4
此題我共寫過兩種方法,方法的主要差別是查詢的過程。 

方法一: 

#include #include struct node

;struct node * head_creat();

void insert_node(struct node *, int, int);

void output_list(struct node *);

int main()

output_list(head);///n 為 0 時輸出本組資料組成的鍊錶

}return 0;

}struct node *head_creat()

void insert_node(struct node *head, int m, int x)

/// 下方為:順序插入結點的操作

q = (struct node *)malloc(sizeof(struct node));///建立乙個結點並令 q 指向它

q->data = x;///為 q 所指向的結點資料域賦值

q->next = p->next;///令 q 的指標域指向 p 的指標域所指向的結點

p->next = q;///令 p 的指標域指向 q, 結點插入完成

}void output_list(struct node *head)

printf("\n");

}

方法二:

#include struct node

;using namespace std;

struct node * sequence_linked_list();

void insert_node(struct node *, int);

void output_list(struct node *);

int main()

return 0;

}struct node *sequence_linked_list()

;void insert_node(struct node *head, int n)

else

}if(q->next == null)

}}void output_list(struct node *head)

cout << endl;

}

師 鍊錶的結點插入

time limit 1000ms memory limit 65536kb problem description 給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放在鍊錶的最後。input 多組輸入。每組資料首先輸入乙個...

師 鍊錶的結點插入

think 每次進行插入相對應位置的元素,然後遍歷輸出。過程 第一次 1 第二次 1 2 第三次 3 1 2 第四次 3 1 2 4 problem description 給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放...

師 鍊錶的結點插入

submit statistic problem description 給出乙個只有頭指標的鍊錶和 n 次操作,每次操作為在鍊錶的第 m 個元素後面插入乙個新元素x。若m 大於鍊錶的元素總數則將x放在鍊錶的最後。input 多組輸入。每組資料首先輸入乙個整數n n 1,100 代表有n次操作。接下...