急!!求大家帮忙看看这两条C语言题目~

来源:百度知道 编辑:UC知道 时间:2024/05/18 00:39:13
请用C语言完成以下两题,能在TC中运行~

1、单链表操作
[基本要求]
(1)建立带表头结点的单链表;
(2)输出单链表中所有结点的数据域值;
(3)输入x,y在第一个数据域值为x的结点之后插入结点y,若无结点x,则在表尾插入结点y;
(4)输入k,删除单链表中所有的结点k,并输出被删除结点的个数。
2、约瑟夫问题
[基本要求]
选择单链表作为存储结构,模拟整个过程,并输出出列人的编号。
比较该存储结构与顺序存储结构实现算法的时间复杂度。

由于没有学过指针,搞到不知道从何下手~ 请大家帮帮忙! 谢谢!!

(1)题 请先连续输入字符按回车结束 构建单链表 之后按提示操作即可
#include<stdio.h>
typedef struct node/*单链表*/
{
char data;
struct node *next;
}node;

void W_get(node *h,char c)/*尾插*/
{
node *p;
p=(node*)malloc(sizeof(node));
p->data=c;
p->next=NULL;
while(h->next!=NULL)
h=h->next;
p->next=h->next;
h->next=p;
}

void insert(node *h,char x,char y)/*插入*/
{
node *p,*q;
p=(node*)malloc(sizeof(node));
p->data=y;
p->next=NULL;
q=h;
while(q->data!=x&&q->next!=NULL)
q=q->next;

if(q->next==NULL)
q->next=p;
else
{
p->next=q->next;
q->next=p;
}
}

void del(node *h,char k) /*删除*/
{
node *p,*q;
for(p=h;p!=NULL;p=p->next)
if(p->next->d