#include <stdio.h>
#include <stdlib.h>
// 定义结点数据类型
struct node {
char data;
struct node *next;
};
void dellink(struct node *h); // 释放链表的函数
struct node *createlink();
struct node *findbypos(struct node *h, int pos);
int main() {
struct node *p, *head = NULL;
int d;
head = createlink();
scanf("%d", &d);
p = findbypos(head, d);
putchar(p->data);
dellink(head); // 释放链表
}
struct node *createlink() {
struct node *head = NULL, *p, *q;
char ch;
while ((ch = getchar())!= '#') { // 尾插法创建链表
p = (struct node *) malloc(sizeof(struct node));
p->data = ch;
// 设置尾结点标志
if (head == NULL) { // 空链表
head = p;
} else { // 非空链表
q->next = p;
}
q = p;
}
return head;
}
struct node *findbypos(struct node *h, int pos) {
struct node *p = h;
while (p!= NULL && pos > 0) {
p = p->next;
pos--;
}
return p;
}
void dellink(struct node *h) {
struct node *q;
while (h!= NULL) {
q = h;
h = h->next;
free(q);
}
}