在学习数据结构 的过程中,我们被要求使用VC++进行线性表(双向链表)的编写与操作,要求如图,但是我想要尝试使用Visual Studio Community 来进行程序的编写,不知道应该如何操作,另外,希望能有一些相关指导贴的推荐,谢谢。
首先,在vs安装的时候,要勾选vc++桌面开发支持
然后新建一个vc++项目
找一个代码
C++安装VS后需要另外在Visual Studio Installer中安装
struct需要添加前和后节点。
typedef struct student {
student* pre;
int num;
char name[10];
student* next;
}student;
插入和删除示例,删除中已经包含了查找
bool Insert_List(student* head, UINT pos = 0)
{
//
//计算链表长度判断pos是否合理
//
UINT length = 0;
student* current = head;
while (NULL != current) {
current = current->next;
length++;
}
if (pos >= length)
{
std::cout << "insert pos error" << std::endl;
return false;
}
student* p = new student();
//赋值
std::cout << "cin name" << std::endl;
std::cin >> p->name;
std::cout << "cin num" << std::endl;
std::cin >> p->num;
for (UINT i = 0; i < pos; i++)
{
head = head->next;
}
if (head->next == NULL)
{
p->next = NULL;
p->pre = head;
head->next = p;
}
else
{
head->next->pre = p;
p->next = head->next;
p->pre = head;
head->next = p;
}
return true;
}
BOOL Delete_List(student* head, int num)
{
if (NULL == head)
{
std::cout << "not found" << std::endl;
return false;
}
//找到要删除的节点
student* p = head;
while ((p->next != NULL) && p->num != num)
p = p->next;
if (p->next == NULL && p->num != num)
{
std::cout << "not found" << std::endl;
return false;
}
else if (p->pre == NULL)
{
head->next = p->next;
p->next->pre = NULL;
}
else if (p->next == NULL)
{
p->pre->next = NULL;
}
else
{
p->pre->next = p->next;
p->next->pre = p->pre;
}
std::cout << "deleted" << std::endl;
return true;
}