C语言 链表实现 字符串的 插入 与 删除 ??
答案:3 悬赏:50 手机版
解决时间 2021-02-23 01:21
- 提问者网友:你独家记忆
- 2021-02-22 13:29
不是说,链表实现 插入 结点的操作 ,挺简单 嘛 。。。 假设, 我 建立 了 一个 链表 , 他的 数据 域 都是 字符类型的 .. 现在 ,假设 有 一个 字符串 arut35yfkk7i654yy 凡是 “数字”之后,都 插入 一个 “空格”,则原来的字符串变成 arut3 5 yfkk7 i6 5 4 yy 求 具体 实现 ?
最佳答案
- 五星知识达人网友:冷風如刀
- 2021-02-22 14:18
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define MAX 100
struct node
{
char c;
struct node *next;
}w;
typedef struct node node;
typedef node *index;
///////////////////////
index list(char *s)
{
index head,q,p;
int i,n;
n=strlen(s);
if (n<=1) return NULL;
else if (n>1)
{
p=(index)malloc(sizeof(node));
p->c=s[0];
head=q=p;
for (i=1;i<n;i++)
{
p=(index)malloc(sizeof(node));
p->c=s[i];
q->next=p;
q=p;
}
}
q->next=NULL;
return head;
}
///////////////////
void main()
{
char s[MAX];
index head,p,tp,q;
int n,i=-1;
n=strlen(gets(s));
head=NULL;
head=list(s);
p=head;
if (p!=NULL)
{
while (p!=NULL)
{
i++;
if (p->c>='0' && p->c<='9')
{
tp=(index)malloc(sizeof(node));
tp->c=' ';
q=p->next;
p->next=tp;
tp->next=q;
p=tp;
if (i==n-1) {p->next=NULL;break;}//作用是当示字符串是数字是以NULL口中止
}
p=p->next;
}
}
while (head!=NULL)
{
printf("%c",head->c);
head=head->next;
}
printf("\n");
}
#include<string.h>
#include<stdlib.h>
#define MAX 100
struct node
{
char c;
struct node *next;
}w;
typedef struct node node;
typedef node *index;
///////////////////////
index list(char *s)
{
index head,q,p;
int i,n;
n=strlen(s);
if (n<=1) return NULL;
else if (n>1)
{
p=(index)malloc(sizeof(node));
p->c=s[0];
head=q=p;
for (i=1;i<n;i++)
{
p=(index)malloc(sizeof(node));
p->c=s[i];
q->next=p;
q=p;
}
}
q->next=NULL;
return head;
}
///////////////////
void main()
{
char s[MAX];
index head,p,tp,q;
int n,i=-1;
n=strlen(gets(s));
head=NULL;
head=list(s);
p=head;
if (p!=NULL)
{
while (p!=NULL)
{
i++;
if (p->c>='0' && p->c<='9')
{
tp=(index)malloc(sizeof(node));
tp->c=' ';
q=p->next;
p->next=tp;
tp->next=q;
p=tp;
if (i==n-1) {p->next=NULL;break;}//作用是当示字符串是数字是以NULL口中止
}
p=p->next;
}
}
while (head!=NULL)
{
printf("%c",head->c);
head=head->next;
}
printf("\n");
}
全部回答
- 1楼网友:三千妖杀
- 2021-02-22 16:28
定义另一个字符串,长度增加,,,,拷贝到另一个字符串,同时插入空格 ~~~~~~~
- 2楼网友:冷風如刀
- 2021-02-22 15:39
#include <stdio.h>
#include <math.h>
typedef struct _list {
char v;
struct _list* next;
} *node, **list;
node insert( list l, node t, char v )
{
node tmp;
tmp = ( node )malloc( sizeof( _list ) );
tmp->v = v;
tmp->next = t ? t->next : NULL;
return ( *l ? t->next : *l ) = tmp;
}
int main()
{
node h, t;
char c;
h = t = NULL;
while ( ( c = getchar() ) != '\n' ) {
t = insert( &h, t, c );
t = insert( &h, t, ' ' );
}
while ( h ) {
putchar( h->v );
t = h;
h = h->next;
free( t );
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯