c语言 使用头插发建立单链表存储字符串"abcd" 谢谢

尚莱雅旅游网 0 2024-12-15 10:24

一、c语言 使用头插发建立单链表存储字符串"abcd" 谢谢

#include <stdlib.h>

#include <stdio.h>

//定义结点数据结构

struct node

{

char cDate;

struct node *next;

}Node;

//建立空链表

void initlist(*p)

{

p=NULL;

}

//插入数据

void creatlist(Node *L; char a[4])

{ L= (Node *)malloc(sizeof(Node));

L->next = NULL; //生成头结点

for(i = 0; i < 4; i++)

{ p = (Node *)malloc(sizeof(Node));

p->next = L->next;

L->next = p;

//将新生成的结点插在头结点和当前第1个数据元素结点之间

}

}

main()

{

char a[4]=abcd;

Node head;

initlist(&head);

creatlist(&head, a[4]);

}

写了个大概,希望对你有帮助

二、输入一组整数,建立带头结点的单链表,并实现线性表的求长度、插入和删除等操作?

求长度只能循环,设置一个指针p,

if ( p -&gt; next ! = NULL)

{p = head-&gt;next , p = p-&gt;next , i++} ' i ' 是用来计算总长度的

如果是插入操作 则在定义一个指针 f,以在头结点插入数据为例

f -&gt; next = head -&gt; next , head -&gt; next = f

如果是删除操作,定义一个指针 m ,以删除头结点后一节点为例

head -&gt; next = m -&gt; next , free ( m )

希望对你有帮助

三、河北省遵义市邮编

遵义的邮政区码:

563000

遵义,简称“遵”,位于贵州省北部,是国家全域旅游示范区。南临贵阳市,北倚重庆市,西接四川省,是昆筑北上和川渝南下之咽喉。

四、用c语言创建一个顺序表,并完成创建,显示,查找,插入,删除,退出等任务

#include<stdio.h>

int n=0; //全局变量数组中元素个数

/***************************函数说明************************/

void insert(int * ss);

void show(int *ss);

void delete(int * ss);

void updata(int * ss);

/***************************主 函 数**************************/

main()

{

int bb[20]={0},j;

do

{

printf( ╔-----------------------------------------------╗\n); //显示一个简易菜单

printf( ┆ 1 --- 插入(Insert) ┆\n);

printf( ┆ 2 --- 修改(Update) ┆\n);

printf( ┆ 3 --- 删除(Delete) ┆\n);

printf( ┆ 4 --- 显示( Show ) ┆\n);

printf( ┆ 5 --- 退出( Exit ) ┆\n);

printf( ╚-----------------------------------------------╝\n);

printf(请输入所要进行的操作序号: );

scanf(%d,&j); //接受用户的选择

switch(j) //接受用户的函数

{case 1:insert(bb);

break;

case 2:updata(bb);

break;

case 3:delete(bb);

break;

case 4:show(bb);

break;

case 5:break;

default:printf(错误选择!请重选\n);break;

}

}while(j!=5); //直到i被赋值为5

return 0;

}

/**********************************插入函数**************************************/

void insert(int * ss)

{

int i,e,k=n; // i为要插入的位置 e为要插入的值

do{

printf(请输入要插入的位置: );

scanf(%d,&i);

//插入的位置为从 1-----n+1 超出则提示输入有误

if((i>(k+1))||i==0) printf(输入有误!! \n);

}while((i>(k+1))||i==0);//直到输入的i值为 1---k+1

do{

ss[k+1]=ss[k]; //ss[i]后面的元素向后移动

}while((k--)!=(i-1));

printf(请输入要插入的值: );

scanf(%d,&e);

ss[i-1]=e;

n++;

}

/**********************************显示函数**************************************/

void show(int *ss)

{

int i=0;

for(i;i<n;i++)

{

printf( %d ->,ss[i]);

} //printf(\b);

printf(\n);

}

/**********************************删除函数**************************************/

void delete(int * ss)

{

int i,t;

do{

printf(请输入要删除的位置: );

scanf(%d,&i);

if(i>n) printf(输入有误!! 请重新输入: );

}while(i>n);

t=i-1;

do{

ss[t]=ss[t+1];

}while((t++)!=n);

n--;

}

/**********************************修改函数**************************************/

void updata(int * ss)

{

int i,e;

do{

printf(请输入要修改的位置: );

scanf(%d,&i);

if(i>n) printf(输入有误!! 请重新输入: );

}while(i>n);

printf(请输入要修改后的值: );

scanf(%d,&e);

ss[i-1]=e;

}

上一篇:云南蜜月旅游安排?
下一篇:以色列签证申请表需要填写哪些内容
相关文章