设计一个处理单向链表的程序:对链表插入和删除操作 c++啊,不是c语言哦。。

问题描述:(1)建立单向链表,每个结点包括:学号(int),姓名(charname[]),性别(char)。(2)将一个新的结点插入到链表中某一个结点之后。(3)查找某一... 问题描述:
(1)建立单向链表,每个结点包括:学号(int),姓名(char name[]),性别(char)。
(2)将一个新的结点插入到链表中某一个结点之后。
(3)查找某一个结点将其从链表中删除。
(4)输出处理过的链表。在主函数中分别调用创建、插入、删除和输出函数
赐教啊。。。
展开
 我来答
xoalyg
2012-05-14 · TA获得超过4178个赞
知道大有可为答主
回答量:2356
采纳率:100%
帮助的人:2384万
展开全部
/*
学生1的信息:
学号 : 33609
姓名 : 李大海
性别 : M
学生2的信息:
学号 : 30285
姓名 : 王芳
性别 : F
学生3的信息:
学号 : 60875
姓名 : 赵宝坤
性别 : M
学生4的信息:
学号 : 33908
姓名 : 王莹莹
性别 : F
学生5的信息:
学号 : 29803
姓名 : 宋立柱
性别 : M
学号 姓名 性别
--------------------
33609 李大海 M
30285 王芳 F
60875 赵宝坤 M
33908 王莹莹 F
29803 宋立柱 M
--------------------
学号 姓名 性别
--------------------
33609 李大海 M
30285 王芳 F
66089 司其乐 M
60875 赵宝坤 M
33908 王莹莹 F
29803 宋立柱 M
--------------------
学号 姓名 性别
--------------------
33609 李大海 M
30285 王芳 F
60875 赵宝坤 M
33908 王莹莹 F
29803 宋立柱 M
--------------------
请按任意键继续. . .
*/
#include <iostream>

using namespace std;

typedef struct student {
int id;
char name[30];
char sex;
struct student *next;
}*LinkList,*Node;

LinkList CreateList(int n) { // 创建链表
LinkList head;
Node p;
head = p = new student;
for(int i = 0; i < n; ++i) {
p->next = new student;
cout << "学生" << i + 1 << "的信息:\n";
cout << "学号 : ";
cin >> p->next->id;
cout << "姓名 : ";
cin >> p->next->name;
cout << "性别 : ";
cin >> p->next->sex;
p = p->next;
}
p->next = NULL;
return head;
}

// 将结点newNode插在学号为id结点的后面,如果id不存在,则插在最后
void InsertNode(LinkList head, int id, Node newNode) {
Node p;
for(p = head; p->next; p = p->next) {
if(p->next->id == id) { // 插在中间
newNode->next = p->next->next;
p->next->next = newNode;
return;
}
}
p->next = newNode; // 插在链表尾部
newNode->next = NULL;
}

// 删除学号为id的结点,成功删除返回ture,否则返回false
bool EraseNode(LinkList head, int id) {
Node p,q;
for(p = head; p->next; p = p->next) {
if(p->next->id == id) {
q = p->next;
p->next = q->next;
delete q;
return true;
}
}
return false;
}

void PrintList(LinkList head) {
cout << "学号\t" << "姓名\t" << "性别" << endl;
cout << "--------------------\n";
for(Node p = head->next; p; p = p->next)
cout << p->id << "\t" << p->name << "\t" << p->sex << endl;
cout << "--------------------\n";
}

int main() {
LinkList head = CreateList(5);
PrintList(head);
Node astu = new student;
astu->id = 66089;
strcpy(astu->name,"司其乐");
astu->sex = 'M';
InsertNode(head,30285,astu);
PrintList(head);
EraseNode(head,66089);
PrintList(head);
return 0;
}
化成雨6O
2012-05-14 · 超过25用户采纳过TA的回答
知道答主
回答量:140
采纳率:100%
帮助的人:53.2万
展开全部
struct node{
int id;
char name[15];
char sex;
}//定义结点

class list{
int *head;
public:
create();
bool del();
bool insert();
}

bool del(int i,&x){
烦死了,不写了。。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式